Re: [PATCH v4 0/8] Wait for DELEGRETURN before returning NFS4ERR_DELAY

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

 



On Thu, 2022-09-08 at 18:13 -0400, Chuck Lever wrote:
> This patch series adds logic to the Linux NFS server to make it wait
> a few moments for clients to return a delegation before replying
> with NFS4ERR_DELAY. There are two main benefits:
> 
> - It improves responsiveness when a delegated file is accessed from
>   another client, and
> - It removes an unnecessary latency if a client has neglected to
>   return a delegation before attempting a RENAME or SETATTR
> 
> NFS4ERR_DELAY during NFSv4 OPEN is still not handled. However, I'm
> comfortable merging the infrastructure in this series and support
> for using it in SETATTR, RENAME, and REMOVE now, and then handling
> OPEN at a later time.
> 
> This series applies against v6.0-rc4.
> 
> Changes since v3:
> - Also handle JUKEBOX when an NFSv3 operation triggers a CB_RECALL
> 
> Changes since v2:
> - Wake immediately after server receives DELEGRETURN
> - More tracepoint improvements
> 
> Changes since RFC:
> - Eliminate spurious console messages on the server
> - Wait for DELEGRETURN for RENAME operations
> - Add CB done tracepoints
> - Rework the retry loop
> 
> ---
> 
> Chuck Lever (8):
>       NFSD: Replace dprintk() call site in fh_verify()
>       NFSD: Trace NFSv4 COMPOUND tags
>       NFSD: Add tracepoints to report NFSv4 callback completions
>       NFSD: Add a mechanism to wait for a DELEGRETURN
>       NFSD: Refactor nfsd_setattr()
>       NFSD: Make nfsd4_setattr() wait before returning NFS4ERR_DELAY
>       NFSD: Make nfsd4_rename() wait before returning NFS4ERR_DELAY
>       NFSD: Make nfsd4_remove() wait before returning NFS4ERR_DELAY
> 
> 
>  fs/nfsd/nfs4layouts.c |   2 +-
>  fs/nfsd/nfs4proc.c    |   6 +-
>  fs/nfsd/nfs4state.c   |  34 +++++++++++
>  fs/nfsd/nfsd.h        |   7 +++
>  fs/nfsd/nfsfh.c       |   8 +--
>  fs/nfsd/trace.h       | 131 ++++++++++++++++++++++++++++++++++++++----
>  fs/nfsd/vfs.c         | 100 ++++++++++++++++++++------------
>  7 files changed, 233 insertions(+), 55 deletions(-)
> 
> --
> Chuck Lever
> 

Nice work, Chuck. These all look reasonable to me.

Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxx>




[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