From: Chuck Lever <chuck.lever@xxxxxxxxxx> 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(-) -- 2.47.0