summaryrefslogtreecommitdiffstats
path: root/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2009-08-17 09:48:34 +0000
committerpjd <pjd@FreeBSD.org>2009-08-17 09:48:34 +0000
commit131066d515bbb9cbb5a4fe078b182d438544ade5 (patch)
treec4b69636b0708c9d82be00202fcf3d749895d775 /sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
parent2a9e26ee0b5f26db25a9616883cd50fbf3d04d18 (diff)
downloadFreeBSD-src-131066d515bbb9cbb5a4fe078b182d438544ade5.zip
FreeBSD-src-131066d515bbb9cbb5a4fe078b182d438544ade5.tar.gz
Manage asynchronous vnode release just like Solaris.
Discussed with: kmacy Approved by: re (kib)
Diffstat (limited to 'sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
index 4585dc8..03af3d1 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
@@ -91,6 +91,9 @@ dsl_pool_open_impl(spa_t *spa, uint64_t txg)
mutex_init(&dp->dp_lock, NULL, MUTEX_DEFAULT, NULL);
mutex_init(&dp->dp_scrub_cancel_lock, NULL, MUTEX_DEFAULT, NULL);
+ dp->dp_vnrele_taskq = taskq_create("zfs_vn_rele_taskq", 1, minclsyspri,
+ 1, 4, 0);
+
return (dp);
}
@@ -228,6 +231,7 @@ dsl_pool_close(dsl_pool_t *dp)
rw_destroy(&dp->dp_config_rwlock);
mutex_destroy(&dp->dp_lock);
mutex_destroy(&dp->dp_scrub_cancel_lock);
+ taskq_destroy(dp->dp_vnrele_taskq);
kmem_free(dp, sizeof (dsl_pool_t));
}
@@ -611,3 +615,9 @@ dsl_pool_create_origin(dsl_pool_t *dp, dmu_tx_t *tx)
dsl_dataset_rele(ds, FTAG);
rw_exit(&dp->dp_config_rwlock);
}
+
+taskq_t *
+dsl_pool_vnrele_taskq(dsl_pool_t *dp)
+{
+ return (dp->dp_vnrele_taskq);
+}
OpenPOWER on IntegriCloud