mbox series

[v3,0/8] async COPY fixes for NFSD

Message ID 20241031134000.53396-10-cel@kernel.org (mailing list archive)
Headers show
Series async COPY fixes for NFSD | expand

Message

Chuck Lever Oct. 31, 2024, 1:40 p.m. UTC
From: Chuck Lever <chuck.lever@oracle.com>

Extend the life of async COPY state IDs so that clients get
actionable OFFLOAD_STATUS results after COPY operations complete.
This lifetime extension comports with RFC 7862, although does not
bring NFSD fully into compliance.

There are a number of other small fixes to improve observability,
behavior during temporary resource shortages, and behavior during
client shutdown.

Async COPY remains disabled in NFSD until the Linux client has grown
support for OFFLOAD_STATUS. Patches for that are available in the
"fix-async-copy" branch of:

  https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git

Changes since previous versions:
- Loads of testing, improvements, and re-organization

Chuck Lever (8):
  NFSD: Add a tracepoint to record canceled async COPY operations
  NFSD: Fix nfsd4_shutdown_copy()
  NFSD: Free async copy information in nfsd4_cb_offload_release()
  NFSD: Handle an NFS4ERR_DELAY response to CB_OFFLOAD
  NFSD: Block DESTROY_CLIENTID only when there are ongoing async COPY
    operations
  NFSD: Add a laundromat reaper for async copy state
  NFSD: Add nfsd4_copy time-to-live
  NFSD: Send CB_OFFLOAD on graceful shutdown

 fs/nfsd/nfs4proc.c  | 101 ++++++++++++++++++++++++++++++++++++++++----
 fs/nfsd/nfs4state.c |   3 +-
 fs/nfsd/state.h     |  17 ++++++++
 fs/nfsd/trace.h     |  11 ++++-
 fs/nfsd/xdr4.h      |   6 +++
 5 files changed, 128 insertions(+), 10 deletions(-)

Comments

Jeff Layton Nov. 1, 2024, 1:06 p.m. UTC | #1
On Thu, 2024-10-31 at 09:40 -0400, cel@kernel.org wrote:
> From: Chuck Lever <chuck.lever@oracle.com>
> 
> Extend the life of async COPY state IDs so that clients get
> actionable OFFLOAD_STATUS results after COPY operations complete.
> This lifetime extension comports with RFC 7862, although does not
> bring NFSD fully into compliance.
> 
> There are a number of other small fixes to improve observability,
> behavior during temporary resource shortages, and behavior during
> client shutdown.
> 
> Async COPY remains disabled in NFSD until the Linux client has grown
> support for OFFLOAD_STATUS. Patches for that are available in the
> "fix-async-copy" branch of:
> 
>   https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git
> 
> Changes since previous versions:
> - Loads of testing, improvements, and re-organization
> 
> Chuck Lever (8):
>   NFSD: Add a tracepoint to record canceled async COPY operations
>   NFSD: Fix nfsd4_shutdown_copy()
>   NFSD: Free async copy information in nfsd4_cb_offload_release()
>   NFSD: Handle an NFS4ERR_DELAY response to CB_OFFLOAD
>   NFSD: Block DESTROY_CLIENTID only when there are ongoing async COPY
>     operations
>   NFSD: Add a laundromat reaper for async copy state
>   NFSD: Add nfsd4_copy time-to-live
>   NFSD: Send CB_OFFLOAD on graceful shutdown
> 
>  fs/nfsd/nfs4proc.c  | 101 ++++++++++++++++++++++++++++++++++++++++----
>  fs/nfsd/nfs4state.c |   3 +-
>  fs/nfsd/state.h     |  17 ++++++++
>  fs/nfsd/trace.h     |  11 ++++-
>  fs/nfsd/xdr4.h      |   6 +++
>  5 files changed, 128 insertions(+), 10 deletions(-)
> 

This looks fine to me overall. Most of my comments were pretty minor
and can be addressed after the fact.

Reviewed-by: Jeff Layton <jlayton@kernel.org>