]> err.no Git - util-linux/commitdiff
mount: warn users that mtab is read-only
authorKarel Zak <kzak@redhat.com>
Thu, 11 Feb 2010 12:54:06 +0000 (13:54 +0100)
committerKarel Zak <kzak@redhat.com>
Thu, 11 Feb 2010 12:54:06 +0000 (13:54 +0100)
In repair mode the root filesystem is read-only and mtab file is not
up to date.

Addresses: http://bugzilla.redhat.com/show_bug.cgi?id=427183
Signed-off-by: Karel Zak <kzak@redhat.com>
mount/fstab.c
mount/fstab.h
mount/mount.c

index 8cd35d64cd3ab3e1e3718dc2c828e66b60d4d5d2..97d64a2c87e843a33d30f953eead589ebc2082f5 100644 (file)
@@ -55,7 +55,7 @@ mtab_does_not_exist(void) {
        return var_mtab_does_not_exist;
 }
 
-static int
+int
 mtab_is_a_symlink(void) {
        get_mtab_info();
        return var_mtab_is_a_symlink;
index 8fc8fd41e628015aa2ba095b47693a24d972c3f9..38f7bab93372d24a087d1f9b942374b92973ab87 100644 (file)
@@ -3,6 +3,7 @@
 
 #include "mount_mntent.h"
 int mtab_is_writable(void);
+int mtab_is_a_symlink(void);
 int mtab_does_not_exist(void);
 void reset_mtab_info(void);
 int is_mounted_once(const char *name);
index 5cefdccc064c976d81e78c58e9ea742b6e1924a5..6f93bc8a335d6925a5c291aa807f0d10d91649ee 100644 (file)
@@ -201,6 +201,7 @@ static int opt_nofail = 0;
 static const char *opt_loopdev, *opt_vfstype, *opt_offset, *opt_sizelimit,
         *opt_encryption, *opt_speed, *opt_comment, *opt_uhelper;
 
+static int is_readonly(const char *node);
 static int mounted (const char *spec0, const char *node0);
 static int check_special_mountprog(const char *spec, const char *node,
                const char *type, int flags, char *extra_opts, int *status);
@@ -282,6 +283,14 @@ print_all (char *types) {
          if (matching_type (mc->m.mnt_type, types))
               print_one (&(mc->m));
      }
+
+     if (!mtab_does_not_exist() && !mtab_is_a_symlink() && is_readonly(_PATH_MOUNTED))
+          printf(_("\n"
+       "mount: warning: /etc/mtab is not writable (e.g. read-only filesystem).\n"
+       "       It's possible that information reported by mount(8) is not\n"
+       "       up to date. For actual information about system mount points\n"
+       "       check the /proc/mounts file.\n\n"));
+
      exit (0);
 }