summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarel Zak2011-09-13 22:59:39 +0200
committerKarel Zak2011-09-13 22:59:39 +0200
commit277a6dd53569a409e05316a7bdaed0e78e326762 (patch)
tree1ef664efe4a1452eb36fee0bb74857161242bfbf
parentlib: do not attempt to close(0) in sysfs_deinit() (diff)
downloadkernel-qcow2-util-linux-277a6dd53569a409e05316a7bdaed0e78e326762.tar.gz
kernel-qcow2-util-linux-277a6dd53569a409e05316a7bdaed0e78e326762.tar.xz
kernel-qcow2-util-linux-277a6dd53569a409e05316a7bdaed0e78e326762.zip
mount: check for target before source on remount
Addresses: http://bugzilla.redhat.com/show_bug.cgi?id=737091 Reported-by: Eric Paris <eparis@redhat.com> Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r--mount/fstab.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/mount/fstab.c b/mount/fstab.c
index 8d88f680d..77bf81cb9 100644
--- a/mount/fstab.c
+++ b/mount/fstab.c
@@ -272,10 +272,15 @@ getmntfilebackward (const char *name, struct mntentchn *mcprev) {
mc0 = mtab_head();
if (!mcprev)
mcprev = mc0;
+
for (mc = mcprev->prev; mc && mc != mc0; mc = mc->prev)
- if (streq(mc->m.mnt_dir, name) ||
- streq(mc->m.mnt_fsname, name))
+ if (streq(mc->m.mnt_dir, name))
return mc;
+
+ for (mc = mcprev->prev; mc && mc != mc0; mc = mc->prev)
+ if (streq(mc->m.mnt_fsname, name))
+ return mc;
+
return NULL;
}