]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
nfsd/sunrpc: add svc_rqst->rq_private pointer and remove rq_lease_breaker
authorJeff Layton <jlayton@kernel.org>
Tue, 13 Jan 2026 18:37:39 +0000 (13:37 -0500)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 30 Mar 2026 01:25:09 +0000 (21:25 -0400)
commit55b6dd54c3bcb6edf7ad630a4510759f4b0cf1cd
treec42bfac33debbb14aadfdaf1147d2ea466d0ec62
parent7aaa8047eafd0bd628065b15757d9b48c5f9c07d
nfsd/sunrpc: add svc_rqst->rq_private pointer and remove rq_lease_breaker

rq_lease_breaker has always been a NFSv4 specific layering violation in
svc_rqst. The reason it's there though is that we need a place that is
thread-local, and accessible from the svc_rqst pointer.

Add a new rq_private pointer to struct svc_rqst. This is intended for
use by the threads that are handling the service. sunrpc code doesn't
touch it.

In nfsd, define a new struct nfsd_thread_local_info. nfsd declares one
of these on the stack and puts a pointer to it in rq_private.

Add a new ntli_lease_breaker field to the new struct and convert all of
the places that access rq_lease_breaker to use the new field instead.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Benjamin Coddington <bcodding@hammerspace.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfs4proc.c
fs/nfsd/nfs4state.c
fs/nfsd/nfsd.h
fs/nfsd/nfssvc.c
include/linux/sunrpc/svc.h