ext3: force ro mount if ext3_setup_super() fails
authorEric Sandeen <sandeen@redhat.com>
Thu, 24 May 2012 17:00:37 +0000 (12:00 -0500)
committerJan Kara <jack@suse.cz>
Mon, 9 Jul 2012 10:03:11 +0000 (12:03 +0200)
If ext3_setup_super() fails i.e. due to a too-high revision,
the error is logged in dmesg but the fs is not mounted RO as
indicated.

Tested by:

[164152.114551] EXT3-fs (sdb6): error: revision level too high, forcing read-only mode
/dev/sdb6 /mnt/test2 ext3 rw,seclabel,relatime,errors=continue,user_xattr,acl,barrier=1,data=ordered 0 0
                          ^^

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Signed-off-by: Jan Kara <jack@suse.cz>
fs/ext3/super.c

index 8c3a44b7c375247f54ac0d0e61be3be99e0b1d6a..b4e19926f46f721983271405a9d261d0ca22bd13 100644 (file)
@@ -2058,7 +2058,8 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent)
                goto failed_mount3;
        }
 
-       ext3_setup_super (sb, es, sb->s_flags & MS_RDONLY);
+       if (ext3_setup_super(sb, es, sb->s_flags & MS_RDONLY))
+               sb->s_flags |= MS_RDONLY;
 
        EXT3_SB(sb)->s_mount_state |= EXT3_ORPHAN_FS;
        ext3_orphan_cleanup(sb, es);