On Thu, Feb 15, 2024 at 02:05:20PM -0800, Dai Ngo wrote: > Currently GETATTR conflict with a write delegation is handled by > recalling the delegation before replying to the GETATTR. > > This patch series add supports for CB_GETATTR callback to get the latest > change_info and size information of the file from the client that holds > the delegation to reply to the GETATTR from the second client. > > NOTE: this patch series is mostly the same as the previous patches which > were backed out when un unrelated problem of NFSD server hang on reboot > was reported. > > The only difference is the wait_on_bit() in nfsd4_deleg_getattr_conflict was > replaced with wait_on_bit_timeout() with 30ms timeout to avoid a potential > DOS attack by exhausting NFSD kernel threads with GETATTR conflicts. > > v2: > . update comments in nfsd4_deleg_getattr_conflict > > v3: > . rebase with nfsd-next > > fs/nfsd/nfs4callback.c | 97 ++++++++++++++++++++++++++++++++++++- > fs/nfsd/nfs4state.c | 115 ++++++++++++++++++++++++++++++++++++++++---- > fs/nfsd/nfs4xdr.c | 10 +++- > fs/nfsd/nfsd.h | 1 + > fs/nfsd/state.h | 24 ++++++++- > fs/nfsd/xdr4cb.h | 18 +++++++ > 6 files changed, 251 insertions(+), 14 deletions(-) > Applied to nfsd-next. Thanks for your efforts! -- Chuck Lever