summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2011-02-03 09:39:49 +0000
committerRichard W.M. Jones <rjones@redhat.com>2011-02-03 09:47:48 +0000
commit61a1a2b71c4811b9d6233a43db74229b9364f0c6 (patch)
treeb0054996ec4325f97f020ec3cf937b818d7f3232
parentf2a4020caf0bc3dd63e9eae95dfc1814f051f87e (diff)
downloadlibguestfs-61a1a2b71c4811b9d6233a43db74229b9364f0c6.tar.gz
libguestfs-61a1a2b71c4811b9d6233a43db74229b9364f0c6.tar.xz
libguestfs-61a1a2b71c4811b9d6233a43db74229b9364f0c6.zip
daemon: Parse /proc/mounts instead of /etc/mtab
Since Fedora util-linux 2.19, the %post script does: rm -f /etc/mtab ln -s /proc/mounts /etc/mtab We are no longer running %post scripts, so this means that /etc/mtab is a plain file in the appliance. Usual 'mount' still updates it, but for some reason mount.ntfs does *not* update it in Fedora 15, meaning that you couldn't mount and then operate on NTFS partitions. It seems better to always parse /proc/mounts (ie. what the kernel thinks is mounted) unconditionally, rather than relying on the capriciousness of the external mount command. Therefore, parse /proc/mounts instead of /etc/mtab, but add a note saying that in future we should really be parsing /proc/self/mountinfo, but that needs a custom parser, and the format is rather tricky: http://lxr.linux.no/#linux+v2.6.37/Documentation/filesystems/proc.txt#L1462
-rw-r--r--daemon/mount.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/daemon/mount.c b/daemon/mount.c
index c584f81d..0c990c31 100644
--- a/daemon/mount.c
+++ b/daemon/mount.c
@@ -40,9 +40,12 @@ is_root_mounted (void)
FILE *fp;
struct mntent *m;
- fp = setmntent ("/etc/mtab", "r");
+ /* NB: Eventually we should aim to parse /proc/self/mountinfo, but
+ * that requires custom parsing code.
+ */
+ fp = setmntent ("/proc/mounts", "r");
if (fp == NULL) {
- perror ("/etc/mtab");
+ perror ("/proc/mounts");
exit (EXIT_FAILURE);
}