Re: [PATCH] nfsd: allow SC_STATUS_FREEABLE when searching via nfs4_lookup_stateid()

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

 



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





[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