summaryrefslogtreecommitdiffstats
path: root/mount/mount.c
diff options
context:
space:
mode:
Diffstat (limited to 'mount/mount.c')
-rw-r--r--mount/mount.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/mount/mount.c b/mount/mount.c
index 4d2fefbbd..60fe4fec9 100644
--- a/mount/mount.c
+++ b/mount/mount.c
@@ -1418,11 +1418,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";
@@ -1439,6 +1434,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.
@@ -1472,15 +1476,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_mountpoint(node0);
mc0 = mtab_head();