From: Chunwei Chen Date: Mon, 24 Jul 2017 19:49:27 +0000 (-0700) Subject: Fix don't zero_label when replace with spare X-Git-Tag: zfs-0.7.0~15 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=83a5e4d6b9c2509efa25ea4cfceba3cd313bf920;p=zfs 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 --- 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); }