|
@@ -606,7 +606,6 @@ static int ext2_setup_super (struct super_block * sb,
|
|
|
if (!le16_to_cpu(es->s_max_mnt_count))
|
|
|
es->s_max_mnt_count = cpu_to_le16(EXT2_DFL_MAX_MNT_COUNT);
|
|
|
le16_add_cpu(&es->s_mnt_count, 1);
|
|
|
- ext2_write_super(sb);
|
|
|
if (test_opt (sb, DEBUG))
|
|
|
ext2_msg(sb, KERN_INFO, "%s, %s, bs=%lu, fs=%lu, gc=%lu, "
|
|
|
"bpg=%lu, ipg=%lu, mo=%04lx]",
|
|
@@ -1079,7 +1078,9 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent)
|
|
|
if (EXT2_HAS_COMPAT_FEATURE(sb, EXT3_FEATURE_COMPAT_HAS_JOURNAL))
|
|
|
ext2_msg(sb, KERN_WARNING,
|
|
|
"warning: mounting ext3 filesystem as ext2");
|
|
|
- ext2_setup_super (sb, es, sb->s_flags & MS_RDONLY);
|
|
|
+ if (ext2_setup_super (sb, es, sb->s_flags & MS_RDONLY))
|
|
|
+ sb->s_flags |= MS_RDONLY;
|
|
|
+ ext2_write_super(sb);
|
|
|
return 0;
|
|
|
|
|
|
cantfind_ext2:
|
|
@@ -1238,6 +1239,7 @@ static int ext2_remount (struct super_block * sb, int * flags, char * data)
|
|
|
*/
|
|
|
es->s_state = cpu_to_le16(sbi->s_mount_state);
|
|
|
es->s_mtime = cpu_to_le32(get_seconds());
|
|
|
+ ext2_sync_super(sb, es, 1);
|
|
|
} else {
|
|
|
__le32 ret = EXT2_HAS_RO_COMPAT_FEATURE(sb,
|
|
|
~EXT2_FEATURE_RO_COMPAT_SUPP);
|
|
@@ -1257,8 +1259,8 @@ static int ext2_remount (struct super_block * sb, int * flags, char * data)
|
|
|
sbi->s_mount_state = le16_to_cpu(es->s_state);
|
|
|
if (!ext2_setup_super (sb, es, 0))
|
|
|
sb->s_flags &= ~MS_RDONLY;
|
|
|
+ ext2_write_super(sb);
|
|
|
}
|
|
|
- ext2_sync_super(sb, es, 1);
|
|
|
unlock_kernel();
|
|
|
return 0;
|
|
|
restore_opts:
|