ext3: force ro mount if ext3_setup_super() fails
PATCH 1/1 ext3: force ro mount if ext3_setup_super() fails
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:
# mkfs.ext3 -r 4 /dev/sdb6
# mount /dev/sdb6 /mnt/test
# dmesg | grep "too high"
[164152.114551] EXT3-fs (sdb6): error: revision level too high, forcing read-only mode
# grep sdb6 /proc/mounts
/dev/sdb6 /mnt/test2 ext3 rw,seclabel,relatime,errors=continue,user_xattr,acl,barrier=1,data=ordered 0 0
^^---
fs/ext3/super.c +2 -1
@@ -2043,7 +2043,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);
Quoted 14 lines · Eric Sandeen
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:
# mkfs.ext3 -r 4 /dev/sdb6 # mount /dev/sdb6 /mnt/test # dmesg | grep "too high" [164152.114551] EXT3-fs (sdb6): error: revision level too high, forcing read-only mode # grep sdb6 /proc/mounts /dev/sdb6 /mnt/test2 ext3 rw,seclabel,relatime,errors=continue,user_xattr,acl,barrier=1,data=ordered 0 0 ^^
Quoted 1 line
Signed-off-by Eric Sandeen <[email protected]>
fs/ext3/super.c static int ext3_fill_super (struct super_block *sb, void *data, int silent) · line 2047
Quoted 13 lines
---
fs/ext3/super.c +2
-1@@ -2043,7 +2043,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 ;
I was wondering if this should be:
sb->s_flags |= ext3_setup_super(...)
but that might be over-thinking things.
Quoted 7 lines
fs/ext3/super.c +0
-1EXT3_SB (sb)->s_mount_state |=EXT3_ORPHAN_FS ;ext3_orphan_cleanup (sb, es); --To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Cheers, Andreas
Quoted 15 lines · Andreas Dilger
Quoted 14 lines · Eric Sandeen
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:
# mkfs.ext3 -r 4 /dev/sdb6 # mount /dev/sdb6 /mnt/test # dmesg | grep "too high" [164152.114551] EXT3-fs (sdb6): error: revision level too high, forcing read-only mode # grep sdb6 /proc/mounts /dev/sdb6 /mnt/test2 ext3 rw,seclabel,relatime,errors=continue,user_xattr,acl,barrier=1,data=ordered 0 0 ^^
Quoted 3 lines
Quoted 1 line
Signed-off-by Eric Sandeen <[email protected]>Reviewed-by Andreas Dilger <[email protected]>
Thanks! Merged to my tree.
Honza
Quoted 39 lines
fs/ext3/super.c static int ext3_fill_super (struct super_block *sb, void *data, int silent) · line 2047
Quoted 13 lines
---
fs/ext3/super.c +2
-1@@ -2043,7 +2043,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 ;I was wondering if this should be:
sb->s_flags |= ext3_setup_super(...)but that might be over-thinking things.
Quoted 7 lines
fs/ext3/super.c +0
-1EXT3_SB (sb)->s_mount_state |=EXT3_ORPHAN_FS ;ext3_orphan_cleanup (sb, es); --To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.htmlCheers, Andreas
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html