Re: [PATCH] lockd: hold a reference to nlmsvc_serv while stopping thread.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> 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






[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux