diff options
| author | Alek Pinchuk <apinchuk@datto.com> | 2019-11-22 12:16:17 -0700 |
|---|---|---|
| committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2019-11-26 14:27:07 -0700 |
| commit | c5832a5333c189dfa346a3c1edac9fa39e1de4cb (patch) | |
| tree | df32cfc8f1fbee1e7647d9601fe3cbdb3a4f3d4c /usr/src/uts/common/fs/zfs/dsl_pool.c | |
| parent | e2336878c3b2087bcf5c52436847f37afaec8666 (diff) | |
| download | illumos-joyent-c5832a5333c189dfa346a3c1edac9fa39e1de4cb.tar.gz | |
12002 async unlinked drain
Portions contributed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Portions contributed by: Roman Strashkin <roman.strashkin@nexenta.com>
Portions contributed by: Saso Kiselkov <saso.kiselkov@nexenta.com>
Reviewed by: Jorgen Lundman <lundman@lundman.net>
Reviewed by: Tom Caputi <tcaputi@datto.com>
Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed by: Matt Ahrens <mahrens@delphix.com>
Reviewed by: Paul Dagnelie <pcd@delphix.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
Reviewed by: C Fraire <cfraire@me.com>
Reviewed by: Kody Kantor <kody.kantor@joyent.com>
Approved by: Dan McDonald <danmcd@joyent.com>
Diffstat (limited to 'usr/src/uts/common/fs/zfs/dsl_pool.c')
| -rw-r--r-- | usr/src/uts/common/fs/zfs/dsl_pool.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/usr/src/uts/common/fs/zfs/dsl_pool.c b/usr/src/uts/common/fs/zfs/dsl_pool.c index abc69ec57c..bc6f9aff77 100644 --- a/usr/src/uts/common/fs/zfs/dsl_pool.c +++ b/usr/src/uts/common/fs/zfs/dsl_pool.c @@ -221,6 +221,9 @@ dsl_pool_open_impl(spa_t *spa, uint64_t txg) dp->dp_vnrele_taskq = taskq_create("zfs_vn_rele_taskq", 1, minclsyspri, 1, 4, 0); + dp->dp_unlinked_drain_taskq = taskq_create("z_unlinked_drain", + max_ncpus, minclsyspri, max_ncpus, INT_MAX, + TASKQ_PREPOPULATE | TASKQ_DYNAMIC); return (dp); } @@ -402,6 +405,7 @@ dsl_pool_close(dsl_pool_t *dp) rrw_destroy(&dp->dp_config_rwlock); mutex_destroy(&dp->dp_lock); + taskq_destroy(dp->dp_unlinked_drain_taskq); taskq_destroy(dp->dp_vnrele_taskq); if (dp->dp_blkstats != NULL) kmem_free(dp->dp_blkstats, sizeof (zfs_all_blkstats_t)); @@ -1077,6 +1081,12 @@ dsl_pool_vnrele_taskq(dsl_pool_t *dp) return (dp->dp_vnrele_taskq); } +taskq_t * +dsl_pool_unlinked_drain_taskq(dsl_pool_t *dp) +{ + return (dp->dp_unlinked_drain_taskq); +} + /* * Walk through the pool-wide zap object of temporary snapshot user holds * and release them. |
