From 986efe1ce10a03a62499d8a62e306bd7806378bf Mon Sep 17 00:00:00 2001 From: Auke Kok Date: Thu, 13 Nov 2025 15:11:34 -0800 Subject: [PATCH] All workqueues are non-reentrant since el8 Signed-off-by: Auke Kok --- kmod/src/fence.c | 3 +-- kmod/src/forest.c | 2 +- kmod/src/kernelcompat.h | 10 ---------- kmod/src/lock.c | 3 +-- kmod/src/net.c | 9 +++------ kmod/src/quorum.c | 3 +-- kmod/src/server.c | 2 +- kmod/src/srch.c | 3 +-- 8 files changed, 9 insertions(+), 26 deletions(-) diff --git a/kmod/src/fence.c b/kmod/src/fence.c index c63f27b4..60799917 100644 --- a/kmod/src/fence.c +++ b/kmod/src/fence.c @@ -424,8 +424,7 @@ int scoutfs_fence_setup(struct super_block *sb) goto out; } - fi->wq = alloc_workqueue("scoutfs_fence", - WQ_UNBOUND | WQ_NON_REENTRANT, 0); + fi->wq = alloc_workqueue("scoutfs_fence", WQ_UNBOUND, 0); if (!fi->wq) { ret = -ENOMEM; goto out; diff --git a/kmod/src/forest.c b/kmod/src/forest.c index 38681273..7eb9cfa5 100644 --- a/kmod/src/forest.c +++ b/kmod/src/forest.c @@ -783,7 +783,7 @@ int scoutfs_forest_setup(struct super_block *sb) scoutfs_forest_log_merge_worker); sbi->forest_info = finf; - finf->workq = alloc_workqueue("scoutfs_log_merge", WQ_NON_REENTRANT | + finf->workq = alloc_workqueue("scoutfs_log_merge", WQ_UNBOUND | WQ_HIGHPRI, 0); if (!finf->workq) { ret = -ENOMEM; diff --git a/kmod/src/kernelcompat.h b/kmod/src/kernelcompat.h index bc150026..cd238b99 100644 --- a/kmod/src/kernelcompat.h +++ b/kmod/src/kernelcompat.h @@ -4,16 +4,6 @@ #include #include -/* - * v3.6-rc1-24-gdbf2576e37da - * - * All workqueues are now non-reentrant, and the bit flag is removed - * shortly after its uses were removed. - */ -#ifndef WQ_NON_REENTRANT -#define WQ_NON_REENTRANT 0 -#endif - /* * v4.13-rc1-6-ge462ec50cb5f * diff --git a/kmod/src/lock.c b/kmod/src/lock.c index 9b3eab61..f3b21345 100644 --- a/kmod/src/lock.c +++ b/kmod/src/lock.c @@ -1693,8 +1693,7 @@ int scoutfs_lock_setup(struct super_block *sb) } linfo->workq = alloc_workqueue("scoutfs_lock_client_work", - WQ_NON_REENTRANT | WQ_UNBOUND | - WQ_HIGHPRI, 0); + 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 b28be556..8ff4a22d 100644 --- a/kmod/src/net.c +++ b/kmod/src/net.c @@ -1517,8 +1517,7 @@ scoutfs_net_alloc_conn(struct super_block *sb, conn->ordered_proc_wlists = kmalloc_array(nr, sizeof(struct scoutfs_work_list), GFP_NOFS); conn->workq = alloc_workqueue("scoutfs_net_%s", - WQ_UNBOUND | WQ_NON_REENTRANT, 0, - name_suffix); + WQ_UNBOUND, 0, name_suffix); } if (!conn || (info_size && !conn->info) || !conn->workq || !conn->ordered_proc_wlists) { if (conn) { @@ -2099,11 +2098,9 @@ 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 | WQ_NON_REENTRANT, - 0); + WQ_UNBOUND, 0); ninf->destroy_workq = alloc_workqueue("scoutfs_net_destroy", - WQ_UNBOUND | WQ_NON_REENTRANT, - 0); + WQ_UNBOUND, 0); if (!ninf->shutdown_workq || !ninf->destroy_workq) { ret = -ENOMEM; goto out; diff --git a/kmod/src/quorum.c b/kmod/src/quorum.c index 69471249..d87033c5 100644 --- a/kmod/src/quorum.c +++ b/kmod/src/quorum.c @@ -1332,8 +1332,7 @@ int scoutfs_quorum_setup(struct super_block *sb) /* a high priority single threaded context without mem reclaim */ qinf->workq = alloc_workqueue("scoutfs_quorum_work", - WQ_NON_REENTRANT | WQ_UNBOUND | - WQ_HIGHPRI, 1); + WQ_UNBOUND | WQ_HIGHPRI, 1); if (!qinf->workq) { ret = -ENOMEM; goto out; diff --git a/kmod/src/server.c b/kmod/src/server.c index ddf405b8..ed97f556 100644 --- a/kmod/src/server.c +++ b/kmod/src/server.c @@ -4751,7 +4751,7 @@ int scoutfs_server_setup(struct super_block *sb) INIT_DELAYED_WORK(&server->reclaim_dwork, reclaim_worker); server->wq = alloc_workqueue("scoutfs_server", - WQ_UNBOUND | WQ_NON_REENTRANT, 0); + WQ_UNBOUND, 0); if (!server->wq) { kfree(server); return -ENOMEM; diff --git a/kmod/src/srch.c b/kmod/src/srch.c index e1b5fb90..c4ce1b79 100644 --- a/kmod/src/srch.c +++ b/kmod/src/srch.c @@ -2392,8 +2392,7 @@ int scoutfs_srch_setup(struct super_block *sb) goto out; srinf->workq = alloc_workqueue("scoutfs_srch_compact", - WQ_NON_REENTRANT | WQ_UNBOUND | - WQ_HIGHPRI, 0); + WQ_UNBOUND | WQ_HIGHPRI, 0); if (!srinf->workq) { ret = -ENOMEM; goto out;