On Wed, 11 Dec 2024, Chuck Lever wrote: > On 12/8/24 5:43 PM, NeilBrown wrote: > > Add a shrinker which frees unused slots and may ask the clients to use > > fewer slots on each session. > > Bisected to this patch. Sometime during the pynfs NFSv4.1 server tests, > this list_del corruption splat is triggered: Thanks. This fixes it. Do you want to squash it in, or should I resend? Having two places that detach a session from a client seems less than ideal. I wonder if I should fix that. Thanks, NeilBrown diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 311f67418759..3b76cfe44b45 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -2425,8 +2425,12 @@ unhash_client_locked(struct nfs4_client *clp) } list_del_init(&clp->cl_lru); spin_lock(&clp->cl_lock); - list_for_each_entry(ses, &clp->cl_sessions, se_perclnt) + spin_lock(&nfsd_session_list_lock); + list_for_each_entry(ses, &clp->cl_sessions, se_perclnt) { list_del_init(&ses->se_hash); + list_del_init(&ses->se_all_sessions); + } + spin_unlock(&nfsd_session_list_lock); spin_unlock(&clp->cl_lock); } Process Finished