diff options
Diffstat (limited to 'fs/ext3/super.c')
| -rw-r--r-- | fs/ext3/super.c | 8 | 
1 files changed, 5 insertions, 3 deletions
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;  	}  |