]> err.no Git - util-linux/commitdiff
mount: use canonicalize in getfs_by_devname
authorKarel Zak <kzak@redhat.com>
Fri, 15 Feb 2008 00:56:18 +0000 (01:56 +0100)
committerKarel Zak <kzak@redhat.com>
Mon, 18 Feb 2008 10:32:45 +0000 (11:32 +0100)
Fixes a problem when you define a device via a persistent
udev device name in /etc/fstab but use the real block device
name on mount invocation.

Signed-off-by: Karel Zak <kzak@redhat.com>
mount/fstab.c

index 814e6fc0e3952580f0f4f050da8b51ff877418ad..ada8d3222574437a58f4de90723d2c10adf54e48 100644 (file)
@@ -425,9 +425,22 @@ getfs_by_devname (const char *devname) {
        struct mntentchn *mc, *mc0;
 
        mc0 = fstab_head();
+
+       /* canonical devname in fstab */
        for (mc = mc0->nxt; mc && mc != mc0; mc = mc->nxt)
                if (streq(mc->m.mnt_fsname, devname))
                        return mc;
+
+       /* noncanonical devname in fstab */
+       for (mc = mc0->nxt; mc && mc != mc0; mc = mc->nxt) {
+               char *fs = canonicalize(mc->m.mnt_fsname);
+               if (streq(fs, devname)) {
+                       free(fs);
+                       return mc;
+               }
+               free(fs);
+       }
+
        return NULL;
 }