X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=module%2Fzfs%2Fspa.c;h=57d25c3d1b355eb0384b243c44464c99362b2f92;hb=86f35f34f419f6eaff53b25f463c13f72186b103;hp=3599e61c9bdafffc6efbdcf88782a7847b47105e;hpb=7e55f4e00cefd7bf5ff7753759c42c5af19ba710;p=zfs.git diff --git a/module/zfs/spa.c b/module/zfs/spa.c index 3599e61..57d25c3 100644 --- a/module/zfs/spa.c +++ b/module/zfs/spa.c @@ -614,9 +614,8 @@ spa_get_errlists(spa_t *spa, avl_tree_t *last, avl_tree_t *scrub) static taskq_t * spa_taskq_create(spa_t *spa, const char *name, enum zti_modes mode, - uint_t value) + uint_t value, uint_t flags) { - uint_t flags = TASKQ_PREPOPULATE; boolean_t batch = B_FALSE; switch (mode) { @@ -666,13 +665,17 @@ spa_create_zio_taskqs(spa_t *spa) const zio_taskq_info_t *ztip = &zio_taskqs[t][q]; enum zti_modes mode = ztip->zti_mode; uint_t value = ztip->zti_value; + uint_t flags = TASKQ_PREPOPULATE; char name[32]; + if (t == ZIO_TYPE_WRITE) + flags |= TASKQ_NORECLAIM; + (void) snprintf(name, sizeof (name), "%s_%s", zio_type_name[t], zio_taskq_types[q]); spa->spa_zio_taskq[t][q] = - spa_taskq_create(spa, name, mode, value); + spa_taskq_create(spa, name, mode, value, flags); } } }