]> www.infradead.org Git - users/jedix/linux-maple.git/commit
NFS: Use NFSv4.2's OFFLOAD_STATUS operation
authorChuck Lever <chuck.lever@oracle.com>
Mon, 13 Jan 2025 15:32:41 +0000 (10:32 -0500)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Mon, 17 Mar 2025 20:51:53 +0000 (16:51 -0400)
commitadcc0aef9ed41a82590be4f0090bb404c28a2f2f
tree9930259a984b2368b469992dae558f6aaf4ab684
parent77dd8a302f56679178924f82a29eaf437857ea75
NFS: Use NFSv4.2's OFFLOAD_STATUS operation

We've found that there are cases where a transport disconnection
results in the loss of callback RPCs. NFS servers typically do not
retransmit callback operations after a disconnect.

This can be a problem for the Linux NFS client's current
implementation of asynchronous COPY, which waits indefinitely for a
CB_OFFLOAD callback. If a transport disconnect occurs while an async
COPY is running, there's a good chance the client will never get the
completing CB_OFFLOAD.

Fix this by implementing the OFFLOAD_STATUS operation so that the
Linux NFS client can probe the NFS server if it doesn't see a
CB_OFFLOAD in a reasonable amount of time.

This patch implements a simplistic check. As future work, the client
might also be able to detect whether there is no forward progress on
the request asynchronous COPY operation, and CANCEL it.

Suggested-by: Olga Kornievskaia <kolga@netapp.com>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=218735
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: Benjamin Coddington <bcodding@redhat.com>
Link: https://lore.kernel.org/r/20250113153235.48706-15-cel@kernel.org
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
fs/nfs/nfs42proc.c