]> git.proxmox.com Git - mirror_zfs.git/blobdiff - module/zfs/spa_misc.c
OpenZFS 9102 - zfs should be able to initialize storage devices
[mirror_zfs.git] / module / zfs / spa_misc.c
index a3ac70f07ae28e035cafaeae4ab95bbd388d15b1..dfac92d458d3ea9f5a24d642aa47e05da3fe89e3 100644 (file)
@@ -38,6 +38,7 @@
 #include <sys/zap.h>
 #include <sys/zil.h>
 #include <sys/vdev_impl.h>
+#include <sys/vdev_initialize.h>
 #include <sys/vdev_file.h>
 #include <sys/vdev_raidz.h>
 #include <sys/metaslab.h>
@@ -1194,6 +1195,12 @@ spa_vdev_config_exit(spa_t *spa, vdev_t *vd, uint64_t txg, int error, char *tag)
 
        if (vd != NULL) {
                ASSERT(!vd->vdev_detached || vd->vdev_dtl_sm == NULL);
+               if (vd->vdev_ops->vdev_op_leaf) {
+                       mutex_enter(&vd->vdev_initialize_lock);
+                       vdev_initialize_stop(vd, VDEV_INITIALIZE_CANCELED);
+                       mutex_exit(&vd->vdev_initialize_lock);
+               }
+
                spa_config_enter(spa, SCL_ALL, spa, RW_WRITER);
                vdev_free(vd);
                spa_config_exit(spa, SCL_ALL, spa);