X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=fs%2Fext3%2Fsuper.c;h=17ae5c83d2346353272fb0c42ed52f1a20aa3c70;hb=d1d4a81b842db21b144ffd2334ca5eee3eb740f3;hp=bd29894c8fbcf8e4bf669cc2ab0d64fe20bcb327;hpb=df5a2a1fbca44bebeebb78530ac93c734f289707;p=~andy%2Flinux diff --git a/fs/ext3/super.c b/fs/ext3/super.c index bd29894c8fb..17ae5c83d23 100644 --- a/fs/ext3/super.c +++ b/fs/ext3/super.c @@ -980,7 +980,7 @@ static int parse_options (char *options, struct super_block *sb, * Initialize args struct so we know whether arg was * found; some options take optional arguments. */ - args[0].to = args[0].from = 0; + args[0].to = args[0].from = NULL; token = match_token(p, tokens, args); switch (token) { case Opt_bsd_df: @@ -1484,10 +1484,12 @@ static void ext3_orphan_cleanup (struct super_block * sb, } if (EXT3_SB(sb)->s_mount_state & EXT3_ERROR_FS) { - if (es->s_last_orphan) + /* don't clear list on RO mount w/ errors */ + if (es->s_last_orphan && !(s_flags & MS_RDONLY)) { jbd_debug(1, "Errors on filesystem, " "clearing orphan list.\n"); - es->s_last_orphan = 0; + es->s_last_orphan = 0; + } jbd_debug(1, "Skipping orphan recovery on fs with errors.\n"); return; }