sysv: do not mark superblock dirty on remount
Artem Bityutskiy [Mon, 5 Jul 2010 12:15:04 +0000 (15:15 +0300)]
No need to mark the superblock as dirty in sysv_remount, synchronize
it instead (only if mounting R/O).

I did not find any docs about this file-system, and I have no possibility
to test my changes. Thus, this is untested. I see other issues in sysv,
e.g., why sysv_sync_fs writes only in the FSTYPE_SYSV4 case? However,
it marks its SB bh's dirty for all types, and does not wait for them
ever. With zero docs I'm unable to fix this.

Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

fs/sysv/inode.c

index 613a505..de44d06 100644 (file)
@@ -71,8 +71,8 @@ static int sysv_remount(struct super_block *sb, int *flags, char *data)
        lock_super(sb);
        if (sbi->s_forced_ro)
                *flags |= MS_RDONLY;
-       if (!(*flags & MS_RDONLY))
-               sb->s_dirt = 1;
+       if (*flags & MS_RDONLY)
+               sysv_write_super(sb);
        unlock_super(sb);
        return 0;
 }