On Mon, 27 Nov 2023, Chuck Lever wrote: > > +static void nfsd_drop_revoked_stid(struct nfs4_stid *s) > > +{ > > + struct nfs4_client *cl = s->sc_client; > > + > > + switch (s->sc_type) { > > + default: > > + spin_unlock(&cl->cl_lock); > > + } > > +} > > I'm not in love with unlocking cl_lock inside nfsd_drop_revoked_stid, > but I understand why it's necessary. How about: > > static void nfsd4_drop_revoked_stid_unlock(struct nfs4_client *cl, > struct nfs4_stid *s) > __releases(&cl->cl_lock) > { > .... > I made it __releases(&s->sc_client->cl_lock) thanks. NeilBrown