From f467b05a265abcfb8e5a3269f79d08f36a58646a Mon Sep 17 00:00:00 2001 From: Tim Chase Date: Sat, 16 May 2015 10:40:45 -0500 Subject: [PATCH] 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 Signed-off-by: Brian Behlendorf Closes #3419 --- include/sys/dmu.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/sys/dmu.h b/include/sys/dmu.h index 08871e890a..d3874335b7 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