diff --git a/kmod/src/data.c b/kmod/src/data.c index 5485af0b..46b18588 100644 --- a/kmod/src/data.c +++ b/kmod/src/data.c @@ -1371,7 +1371,7 @@ int scoutfs_data_setup(struct super_block *sb) INIT_WORK(&datinf->return_work, scoutfs_data_return_server_extents_worker); - datinf->workq = alloc_workqueue("scoutfs_data", 0, 1); + datinf->workq = alloc_workqueue("scoutfs_data", WQ_UNBOUND, 1); if (!datinf->workq) { kfree(datinf); return -ENOMEM; diff --git a/kmod/src/lock.c b/kmod/src/lock.c index f565be1e..e8a6a425 100644 --- a/kmod/src/lock.c +++ b/kmod/src/lock.c @@ -1445,7 +1445,8 @@ int scoutfs_lock_setup(struct super_block *sb) } linfo->workq = alloc_workqueue("scoutfs_lock_work", - WQ_UNBOUND|WQ_HIGHPRI, 0); + WQ_NON_REENTRANT | WQ_UNBOUND | + WQ_HIGHPRI, 0); if (!linfo->workq) { ret = -ENOMEM; goto out; diff --git a/kmod/src/net.c b/kmod/src/net.c index c871d468..27e567fb 100644 --- a/kmod/src/net.c +++ b/kmod/src/net.c @@ -1561,7 +1561,8 @@ int scoutfs_net_setup(struct super_block *sb) scoutfs_tseq_tree_init(&ninf->msg_tseq_tree, net_tseq_show_msg); ninf->shutdown_workq = alloc_workqueue("scoutfs_net_shutdown", - WQ_UNBOUND, 0); + WQ_UNBOUND | WQ_NON_REENTRANT, + 0); if (!ninf->shutdown_workq) { ret = -ENOMEM; goto out; diff --git a/kmod/src/server.c b/kmod/src/server.c index 8f8eda8b..a91cf005 100644 --- a/kmod/src/server.c +++ b/kmod/src/server.c @@ -1339,7 +1339,8 @@ int scoutfs_server_setup(struct super_block *sb) INIT_LIST_HEAD(&server->pending_frees); INIT_LIST_HEAD(&server->clients); - server->wq = alloc_workqueue("scoutfs_server", WQ_NON_REENTRANT, 0); + server->wq = alloc_workqueue("scoutfs_server", + WQ_UNBOUND | WQ_NON_REENTRANT, 0); if (!server->wq) { kfree(server); return -ENOMEM; diff --git a/kmod/src/trans.c b/kmod/src/trans.c index 9e45b7e2..710fa6cd 100644 --- a/kmod/src/trans.c +++ b/kmod/src/trans.c @@ -480,7 +480,8 @@ int scoutfs_setup_trans(struct super_block *sb) spin_lock_init(&tri->lock); - sbi->trans_write_workq = alloc_workqueue("scoutfs_trans", 0, 1); + sbi->trans_write_workq = alloc_workqueue("scoutfs_trans", + WQ_UNBOUND, 1); if (!sbi->trans_write_workq) { kfree(tri); return -ENOMEM;