From: Petr Uzel Date: Fri, 21 May 2010 13:19:31 +0000 (+0200) Subject: mount: detect when kernel silently adds MS_RDONLY flag X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=81694f8c60dffb7851f941e69a1b79bc573ace53;p=util-linux mount: detect when kernel silently adds MS_RDONLY flag Linux kernel can silently add MS_RDONLY flag when mounting file system that does not have write support. Check this to avoid 'ro' in /proc/mounts and 'rw' in mtab. [kzak@redhat.com: - don't check for 'ro' for MS_MOVE and MS_PROPAGATION] Reported-by: James Foris Signed-off-by: Petr Uzel Signed-off-by: Karel Zak --- diff --git a/mount/mount.c b/mount/mount.c index 576fed6b..4f2dcd24 100644 --- a/mount/mount.c +++ b/mount/mount.c @@ -1435,6 +1435,18 @@ try_mount_one (const char *spec0, const char *node0, const char *types0, flags &= ~MS_RDONLY; } + /* Kernel can silently add MS_RDONLY flag when mounting file system that + * does not have write support. Check this to avoid 'ro' in /proc/mounts + * and 'rw' in mtab. + */ + if (!fake && mnt5_res == 0 && + !(flags & MS_RDONLY) && !(flags & MS_PROPAGATION) && !(flags & MS_MOVE) && + is_readonly(node)) { + + printf(_("mount: warning: %s seems to be mounted read-only.\n"), node); + flags |= MS_RDONLY; + } + if (fake || mnt5_res == 0) { /* Mount succeeded, report this (if verbose) and write mtab entry. */