summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormmusante <none@none>2007-08-27 08:25:15 -0700
committermmusante <none@none>2007-08-27 08:25:15 -0700
commit03a818bc5cc6f80c183dfb3334f4d0ff2ab36fcc (patch)
treeacead865debf2a997d0240c7360587fe6aa8aee7
parentb7fbf88316777f232abba501d4e951397eac8be5 (diff)
downloadillumos-joyent-03a818bc5cc6f80c183dfb3334f4d0ff2ab36fcc.tar.gz
6573276 spare device inuse check problem
-rw-r--r--usr/src/cmd/zpool/zpool_vdev.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/usr/src/cmd/zpool/zpool_vdev.c b/usr/src/cmd/zpool/zpool_vdev.c
index ac25924097..48615d991e 100644
--- a/usr/src/cmd/zpool/zpool_vdev.c
+++ b/usr/src/cmd/zpool/zpool_vdev.c
@@ -135,9 +135,16 @@ check_slice(const char *path, int force, boolean_t wholedisk, boolean_t isspare)
{
char *msg;
int error = 0;
+ dm_who_type_t who;
- if (dm_inuse((char *)path, &msg, isspare ? DM_WHO_ZPOOL_SPARE :
- (force ? DM_WHO_ZPOOL_FORCE : DM_WHO_ZPOOL), &error) || error) {
+ if (force)
+ who = DM_WHO_ZPOOL_FORCE;
+ else if (isspare)
+ who = DM_WHO_ZPOOL_SPARE;
+ else
+ who = DM_WHO_ZPOOL;
+
+ if (dm_inuse((char *)path, &msg, who, &error) || error) {
if (error != 0) {
libdiskmgt_error(error);
return (0);