Export symbols for the VFS API
[zfs.git] / module / zfs / spa.c
index 3599e61..57d25c3 100644 (file)
@@ -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);
                }
        }
 }