]> git.proxmox.com Git - mirror_zfs.git/blobdiff - module/zfs/spa.c
OpenZFS 9290 - device removal reduces redundancy of mirrors
[mirror_zfs.git] / module / zfs / spa.c
index 08fc7bbda71d97204c6b0f72bdddf158adce186f..9a5346b42aa96ffd104d27c1b93eb27bcc6596e1 100644 (file)
@@ -4860,8 +4860,7 @@ spa_vdev_add(spa_t *spa, nvlist_t *nvroot)
                for (int c = 0; c < vd->vdev_children; c++) {
                        tvd = vd->vdev_child[c];
                        if (spa->spa_vdev_removal != NULL &&
-                           tvd->vdev_ashift !=
-                           spa->spa_vdev_removal->svr_vdev->vdev_ashift) {
+                           tvd->vdev_ashift != spa->spa_max_ashift) {
                                return (spa_vdev_exit(spa, vd, txg, EINVAL));
                        }
                        /* Fail if top level vdev is raidz */
@@ -4970,10 +4969,8 @@ spa_vdev_attach(spa_t *spa, uint64_t guid, nvlist_t *nvroot, int replacing)
 
        oldvd = spa_lookup_by_guid(spa, guid, B_FALSE);
 
-       if (spa->spa_vdev_removal != NULL ||
-           spa->spa_removing_phys.sr_prev_indirect_vdev != -1) {
+       if (spa->spa_vdev_removal != NULL)
                return (spa_vdev_exit(spa, NULL, txg, EBUSY));
-       }
 
        if (oldvd == NULL)
                return (spa_vdev_exit(spa, NULL, txg, ENODEV));