> On Oct 10, 2023, at 6:30 PM, NeilBrown <neilb@xxxxxxx> wrote: > > On Tue, 10 Oct 2023, Chuck Lever III wrote: >> >>> On Oct 9, 2023, at 7:35 PM, NeilBrown <neilb@xxxxxxx> wrote: >>> We are required to hold a reference to the svc_serv struct while >>> stopping the last thread, as doing that could otherwise drop the last >>> reference itself and the svc_serv would be freed while still in use. >>> >>> lockd doesn't do this. After startup, the only reference is held by the >>> running thread. >>> >>> So change locked to hold a reference on nlmsvc_serv while-ever the >>> service is active, and only drop it after the last thread has been >>> stopped. >>> >>> Note: it doesn't really make sense for threads to hold references to the >>> svc_serv any more. The fact threads are included in serv->sv_nrthreads >>> is sufficient. Maybe a future patch could address this. >>> >>> Reported-by: Jeff Layton <jlayton@xxxxxxxxxx> >>> Fixes: 68cc388c3238 ("SUNRPC: change how svc threads are asked to exit.") >>> Signed-off-by: NeilBrown <neilb@xxxxxxx> >> >> Thanks for the fast response! >> >> Should I squash this into 68cc, or apply it before? I would >> like to ensure that bisect works nicely over this series of >> commits. > > Probably makes sense to put it before. In that case the patch > description needs re-wording. > > And on reflection I think the code should be changed a little so that it > matches similar code in nfsd and nfs4-callback. > So I'll repost. > I'll take the liberty of preserving Jeff's review/test even though I've > changed the code .... I hope that's OK. Sounds like a plan. I've picked up v2 and applied it to nfsd-next. -- Chuck Lever