summaryrefslogtreecommitdiffstats
path: root/include/sys
diff options
context:
space:
mode:
authorTim Chase <[email protected]>2015-05-16 10:40:45 -0500
committerBrian Behlendorf <[email protected]>2015-05-18 11:39:14 -0700
commitf467b05a265abcfb8e5a3269f79d08f36a58646a (patch)
tree7679b0c095920e7f2db4e2277d64ec6d878a91eb /include/sys
parent7fec46b9d8967109ad289d208e8cf36a0c16e40c (diff)
Initialize dbu_tqent in dmu_buf_init_user()
The dbu_evict_taskq added in 0c66c32d is only invoked via taskq_dispatch_ent(). In these cases, ZoL's implementation of taskqs requires the entries to be initialized first with taskq_init_ent() in order that, among other things, the embedded spinlock is initialized properly. Signed-off-by: Tim Chase <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #3419
Diffstat (limited to 'include/sys')
-rw-r--r--include/sys/dmu.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/sys/dmu.h b/include/sys/dmu.h
index 08871e890..d3874335b 100644
--- a/include/sys/dmu.h
+++ b/include/sys/dmu.h
@@ -558,6 +558,7 @@ dmu_buf_init_user(dmu_buf_user_t *dbu, dmu_buf_evict_func_t *evict_func,
ASSERT(dbu->dbu_evict_func == NULL);
ASSERT(evict_func != NULL);
dbu->dbu_evict_func = evict_func;
+ taskq_init_ent(&dbu->dbu_tqent);
#ifdef ZFS_DEBUG
dbu->dbu_clear_on_evict_dbufp = clear_on_evict_dbufp;
#endif