From 83a5e4d6b9c2509efa25ea4cfceba3cd313bf920 Mon Sep 17 00:00:00 2001 From: Chunwei Chen Date: Mon, 24 Jul 2017 12:49:27 -0700 Subject: [PATCH] Fix don't zero_label when replace with spare When replacing a disk with non-wholedisk spare, we shouldn't zero_label it. The wholedisk case already skip it. In fact, zero_label function will fail saying device busy because it's already opened exclusively, but since there's no error checking, the replace command will succeed, causing great confusion. Reviewed-by: Brian Behlendorf Signed-off-by: Chunwei Chen Closes #6369 --- cmd/zpool/zpool_vdev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmd/zpool/zpool_vdev.c b/cmd/zpool/zpool_vdev.c index b0b639684..4c3793d6e 100644 --- a/cmd/zpool/zpool_vdev.c +++ b/cmd/zpool/zpool_vdev.c @@ -1227,7 +1227,8 @@ make_disks(zpool_handle_t *zhp, nvlist_t *nv) if (is_mpath_whole_disk(path)) update_vdev_config_dev_strs(nv); - (void) zero_label(path); + if (!is_spare(NULL, path)) + (void) zero_label(path); return (0); }