]> git.proxmox.com Git - mirror_zfs.git/blobdiff - module/zfs/spa.c
DKMS: Disable weak modules
[mirror_zfs.git] / module / zfs / spa.c
index ae8964e6fd988253638ed2f6f88ece65ea0ec158..50822cfae23deedce21c84af3cfc9686470ce2f2 100644 (file)
@@ -1281,15 +1281,15 @@ spa_activate(spa_t *spa, spa_mode_t mode)
         * pool traverse code from monopolizing the global (and limited)
         * system_taskq by inappropriately scheduling long running tasks on it.
         */
-       spa->spa_prefetch_taskq = taskq_create("z_prefetch", boot_ncpus,
-           defclsyspri, 1, INT_MAX, TASKQ_DYNAMIC);
+       spa->spa_prefetch_taskq = taskq_create("z_prefetch", 100,
+           defclsyspri, 1, INT_MAX, TASKQ_DYNAMIC | TASKQ_THREADS_CPU_PCT);
 
        /*
         * The taskq to upgrade datasets in this pool. Currently used by
         * feature SPA_FEATURE_USEROBJ_ACCOUNTING/SPA_FEATURE_PROJECT_QUOTA.
         */
-       spa->spa_upgrade_taskq = taskq_create("z_upgrade", boot_ncpus,
-           defclsyspri, 1, INT_MAX, TASKQ_DYNAMIC);
+       spa->spa_upgrade_taskq = taskq_create("z_upgrade", 100,
+           defclsyspri, 1, INT_MAX, TASKQ_DYNAMIC | TASKQ_THREADS_CPU_PCT);
 }
 
 /*
@@ -7974,6 +7974,9 @@ spa_async_remove(spa_t *spa, vdev_t *vd)
                vd->vdev_stat.vs_checksum_errors = 0;
 
                vdev_state_dirty(vd->vdev_top);
+
+               /* Tell userspace that the vdev is gone. */
+               zfs_post_remove(spa, vd);
        }
 
        for (int c = 0; c < vd->vdev_children; c++)