git://git.camperquake.de
/
zfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Retry removal of busy minors
[zfs.git]
/
lib
/
libzfs
/
libzfs_util.c
diff --git
a/lib/libzfs/libzfs_util.c
b/lib/libzfs/libzfs_util.c
index
5f6763c
..
982a6f0
100644
(file)
--- a/
lib/libzfs/libzfs_util.c
+++ b/
lib/libzfs/libzfs_util.c
@@
-821,16
+821,29
@@
int
zfs_resolve_shortname(const char *name, char *path, size_t pathlen)
{
int i, err;
zfs_resolve_shortname(const char *name, char *path, size_t pathlen)
{
int i, err;
- char dirs[5][9] = {"by-id", "by-label", "by-path", "by-uuid", "zpool"};
+ 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);
(void) snprintf(path, pathlen, "%s/%s", DISK_ROOT, name);
err = access(path, F_OK);
- for (i = 0; i < 5 && err < 0; i++) {
+ 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);
}
(void) snprintf(path, pathlen, "%s/%s/%s",
UDISK_ROOT, dirs[i], name);
err = access(path, F_OK);
}
- return err;
+
+ return (err);
}
/*
}
/*