Make statfs properly return read-only state after emergency remount
authorCarlos Maiolino <cmaiolino@redhat.com>
Thu, 29 Jun 2017 09:25:40 +0000 (11:25 +0200)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 30 Jun 2017 00:21:06 +0000 (20:21 -0400)
Emergency remount (sysrq-u) sets MS_RDONLY to the superblock but doesn't set
MNT_READONLY to the mount point.

Once calculate_f_flags() only check for the mount point read only state,
when setting kstatfs flags, after an emergency remount, statfs does not
report the filesystem as read-only, even though it is.

Enable flags_by_sb() to also check for superblock read only state, so the
kstatfs and consequently statfs can properly show the read-only state of
the filesystem.

Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/statfs.c

index 4e4623c7a1260eafaf564e87b4812091a9b3eb0e..c1dfc374e3c178adb1c973b78631a4e90befba5e 100644 (file)
@@ -38,6 +38,8 @@ static int flags_by_sb(int s_flags)
                flags |= ST_SYNCHRONOUS;
        if (s_flags & MS_MANDLOCK)
                flags |= ST_MANDLOCK;
+       if (s_flags & MS_RDONLY)
+               flags |= ST_RDONLY;
        return flags;
 }