87 lines
2.4 KiB
Diff
87 lines
2.4 KiB
Diff
X-Gnus-Coding-System: -*- coding: utf-8; -*-
|
|
|
|
On Mon, Feb 11, 2008 at 05:04:22PM +0100, Matthias Koenig wrote:
|
|
> Matthias Koenig <mkoenig@suse.de> writes:
|
|
>
|
|
> > 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.
|
|
|
|
I didn't test it, but according to the code (and code never lies:-)
|
|
you're right.
|
|
|
|
> > mc0 = fstab_head();
|
|
> > - for (mc = mc0->nxt; mc && mc != mc0; mc = mc->nxt)
|
|
> > - if (streq(mc->m.mnt_fsname, devname))
|
|
> > + for (mc = mc0->nxt; mc && mc != mc0; mc = mc->nxt) {
|
|
> > + name = canonicalize(mc->m.mnt_fsname);
|
|
> > + if (streq(name, devname)) {
|
|
> > + free(name);
|
|
> > return mc;
|
|
> > + }
|
|
> > + free(name);
|
|
> > + }
|
|
> > return NULL;
|
|
> > }
|
|
|
|
We can't simply canonicalize only. We have to support non-canonicalized
|
|
(/dev/cdrom, ...) versions too. And there shouldn't be a performance
|
|
penalization for people who use canonical paths in their fstab.
|
|
|
|
> I am dumb, please ignore this patch.
|
|
> New patch will follow.
|
|
|
|
No problem. Please, test the patch below.
|
|
|
|
Karel
|
|
|
|
>From a3c6d618c332ed3651fef629739ac246fd31b7ca Mon Sep 17 00:00:00 2001
|
|
From: Karel Zak <kzak@redhat.com>
|
|
Date: Fri, 15 Feb 2008 01:56:18 +0100
|
|
Subject: [PATCH] mount: use canonicalize in getfs_by_devname
|
|
|
|
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 | 13 +++++++++++++
|
|
1 files changed, 13 insertions(+), 0 deletions(-)
|
|
|
|
diff --git a/mount/fstab.c b/mount/fstab.c
|
|
index 814e6fc..ada8d32 100644
|
|
--- a/mount/fstab.c
|
|
+++ b/mount/fstab.c
|
|
@@ -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;
|
|
}
|
|
|
|
--
|
|
1.5.3.8
|
|
|
|
-
|
|
To unsubscribe from this list: send the line "unsubscribe util-linux-ng" in
|
|
the body of a message to majordomo@vger.kernel.org
|
|
More majordomo info at http://vger.kernel.org/majordomo-info.html
|
|
|