From cd93e3f76272de50592a0eb7c343c65a803ef6d5 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Wed, 21 Nov 2007 01:46:57 +0100 Subject: [PATCH] mount: don't call canonicalize(SPEC) for cifs, smbfs and nfs When calling "mount -t smbfs //foo/bar /mnt/foo", mount.smbfs will be called with /foo/bar if /foo/bar exists locally, and will display its usage. The patch also removes duplicate canonicalize() from mounted() function. Reported-By: Pascal Terjan Signed-off-by: Karel Zak --- mount/mount.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/mount/mount.c b/mount/mount.c index 96776db3..7e3336ac 100644 --- a/mount/mount.c +++ b/mount/mount.c @@ -1385,11 +1385,6 @@ mount_one (const char *spec, const char *node, const char *types, /* Merge the fstab and command line options. */ opts = append_opt(opts, cmdlineopts, NULL); - /* Handle possible LABEL= and UUID= forms of spec */ - nspec = fsprobe_get_devname_for_mounting(spec); - if (nspec) - spec = nspec; - if (types == NULL && !mounttype && !is_existing_file(spec)) { if (strchr (spec, ':') != NULL) { types = "nfs"; @@ -1406,6 +1401,15 @@ mount_one (const char *spec, const char *node, const char *types, } } + /* Handle possible LABEL= and UUID= forms of spec */ + if (types == NULL || (strncmp(types, "nfs", 3) && + strncmp(types, "cifs", 4) && + strncmp(types, "smbfs", 5))) { + nspec = fsprobe_get_devname_for_mounting(spec); + if (nspec) + spec = nspec; + } + /* * Try to mount the file system. When the exit status is EX_BG, * we will retry in the background. Otherwise, we're done. @@ -1439,15 +1443,14 @@ mount_one (const char *spec, const char *node, const char *types, static int mounted (const char *spec0, const char *node0) { struct mntentchn *mc, *mc0; - char *spec, *node; + const char *spec, *node; int ret = 0; /* Handle possible UUID= and LABEL= in spec */ - spec0 = fsprobe_get_devname(spec0); - if (!spec0) + spec = fsprobe_get_devname(spec0); + if (!spec) return ret; - spec = canonicalize(spec0); node = canonicalize(node0); mc0 = mtab_head(); -- 2.39.5