]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
nfsd: use workqueue enable/disable APIs for v4_end_grace sync
authorNeilBrown <neil@brown.name>
Sat, 13 Dec 2025 18:42:00 +0000 (13:42 -0500)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 26 Jan 2026 15:10:58 +0000 (10:10 -0500)
commit27e383ddeb3c88e20874c545285f2dce1a98f56a
treea3824fbd75ba9b4b648b6b36724da02e584bad51
parent0ac903d1bfdce8ff40657c2b7d996947b72b6645
nfsd: use workqueue enable/disable APIs for v4_end_grace sync

"nfsd: provide locking for v4_end_grace" introduced a
client_tracking_active flag protected by nn->client_lock to prevent
the laundromat from being scheduled before client tracking
initialization or after shutdown begins. That commit is suitable for
backporting to LTS kernels that predate commit 86898fa6b8cd
("workqueue: Implement disable/enable for (delayed) work items").

However, the workqueue subsystem in recent kernels provides
enable_delayed_work() and disable_delayed_work_sync() for this
purpose. Using this mechanism enable us to remove the
client_tracking_active flag and associated spinlock operations
while preserving the same synchronization guarantees, which is
a cleaner long-term approach.

Signed-off-by: NeilBrown <neil@brown.name>
Tested-by: Li Lingfeng <lilingfeng3@huawei.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/netns.h
fs/nfsd/nfs4state.c