Add /dev/mapper/ to search path
authorBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 25 May 2012 21:52:56 +0000 (14:52 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 1 Jun 2012 15:55:24 +0000 (08:55 -0700)
When creating pools short device names may be used when those
devices appear in certain well known locations under /dev/.
This change adds /dev/mapper/ to that list.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
lib/libzfs/libzfs_util.c

index 3983f5c..982a6f0 100644 (file)
@@ -824,14 +824,26 @@ zfs_resolve_shortname(const char *name, char *path, size_t pathlen)
        char dirs[6][9] = {"by-id", "by-label", "by-path", "by-uuid", "zpool",
                           "by-vdev"};
 
+       /* /dev/ */
        (void) snprintf(path, pathlen, "%s/%s", DISK_ROOT, name);
        err = access(path, F_OK);
+       if (err == 0)
+               return (err);
+
+       /* /dev/mapper/ */
+       (void) snprintf(path, pathlen, "%s/mapper/%s", DISK_ROOT, name);
+       err = access(path, F_OK);
+       if (err == 0)
+               return (err);
+
+       /* /dev/disk/<dirs>/ */
        for (i = 0; i < 6 && err < 0; i++) {
                (void) snprintf(path, pathlen, "%s/%s/%s",
                    UDISK_ROOT, dirs[i], name);
                err = access(path, F_OK);
        }
-       return err;
+
+       return (err);
 }
 
 /*