On 12 Feb 2025, at 11:29, Jeff Layton wrote: > When a delegation is revoked, it's initially marked with > SC_STATUS_REVOKED, or SC_STATUS_ADMIN_REVOKED and later, it's marked > with the SC_STATUS_FREEABLE flag, which denotes that it is waiting for > s FREE_STATEID call. > > nfs4_lookup_stateid() accepts a statusmask that includes the status > flags that a found stateid is allowed to have. Currently, that mask > never includes SC_STATUS_FREEABLE, which means that revoked delegations > are (almost) never found. > > Add SC_STATUS_FREEABLE to the always-allowed status flags. > > Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx> > --- > This fixes the pynfs DELEG8 test. I want to follow-up this patch with the report that this will fix quite severe TEST_STATEID/FREE_STATEID storms from NFS clients that can never satisfy the server's setting SEQ4_STATUS_*_STATE_REVOKED status bits. Correct accounting on the server's cl_revoked counter is pretty important, I do wish the protocol had something like a per-client global window of valid state. Thanks Jeff (and thanks Olga for the original fix!), Ben