> On Oct 8, 2024, at 9:47 AM, cel@xxxxxxxxxx wrote: > > From: Chuck Lever <chuck.lever@xxxxxxxxxx> > > Hi - > > There are edge cases on both the Linux NFS server and client that > can be improved to make notification of COPY completion reliable. > This series accomplishes two things, primarily: > > 1. Add support for OFFLOAD_STATUS to the Linux NFS client > > 2. Modify NFSD to keep the copy state ID around so that > OFFLOAD_STATUS can find the completed COPY > > That should be enough to make async COPY reliable so that it can be > enabled again in NFSD. I'd like to shoot for doing that in v6.13. > > Due to other bugs and issues, this has unfortunately been somewhat > of a background task lately, so any independent testing would be > greatly appreciated. A branch containing these patches, plus one to re-enable async COPY in NFSD, is available here: https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git/log/?h=fix-async-copy > When we agree that these are ready, I can split them up so they can > be merged independently via the client and server trees. > > Chuck Lever (9): > NFS: CB_OFFLOAD can return NFS4ERR_DELAY > NFSD: Free async copy information in nfsd4_cb_offload_release() > NFSD: Handle an NFS4ERR_DELAY response to CB_OFFLOAD > NFS: Fix typo in OFFLOAD_CANCEL comment > NFS: Implement NFSv4.2's OFFLOAD_STATUS XDR > NFS: Rename struct nfs4_offloadcancel_data > NFS: Implement NFSv4.2's OFFLOAD_STATUS operation > NFS: Use NFSv4.2's OFFLOAD_STATUS operation > NFS: Refactor trace_nfs4_offload_cancel > > fs/nfs/callback_proc.c | 2 +- > fs/nfs/nfs42proc.c | 198 +++++++++++++++++++++++++++++++++++--- > fs/nfs/nfs42xdr.c | 88 ++++++++++++++++- > fs/nfs/nfs4proc.c | 3 +- > fs/nfs/nfs4trace.h | 11 ++- > fs/nfs/nfs4xdr.c | 1 + > fs/nfsd/nfs4proc.c | 26 +++-- > fs/nfsd/xdr4.h | 4 + > include/linux/nfs4.h | 1 + > include/linux/nfs_fs_sb.h | 1 + > include/linux/nfs_xdr.h | 5 +- > 11 files changed, 311 insertions(+), 29 deletions(-) > > -- > 2.46.2 > > -- Chuck Lever