From 424a3a71b8059cdb8e755bac35c29184a4ef4482 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Fri, 14 Nov 2025 16:03:41 -0500 Subject: [PATCH] NFS: Move NFS v4.0 pathdown recovery into nfs40client.c Signed-off-by: Anna Schumaker --- fs/nfs/nfs40.h | 1 + fs/nfs/nfs40client.c | 23 +++++++++++++++++++++++ fs/nfs/nfs4state.c | 23 +---------------------- 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/fs/nfs/nfs40.h b/fs/nfs/nfs40.h index 5a9c5d367b125..ee09aac738c84 100644 --- a/fs/nfs/nfs40.h +++ b/fs/nfs/nfs40.h @@ -6,6 +6,7 @@ /* nfs40client.c */ void nfs40_shutdown_client(struct nfs_client *); int nfs40_init_client(struct nfs_client *); +void nfs40_handle_cb_pathdown(struct nfs_client *clp); /* nfs40proc.c */ extern const struct nfs4_minor_version_ops nfs_v4_0_minor_ops; diff --git a/fs/nfs/nfs40client.c b/fs/nfs/nfs40client.c index cd105dc1cee1a..fc0c6b48fc948 100644 --- a/fs/nfs/nfs40client.c +++ b/fs/nfs/nfs40client.c @@ -3,6 +3,7 @@ #include "nfs4_fs.h" #include "nfs4session.h" #include "callback.h" +#include "delegation.h" #include "internal.h" #include "netns.h" #include "nfs40.h" @@ -80,6 +81,28 @@ int nfs40_init_client(struct nfs_client *clp) return 0; } +/* + * nfs40_handle_cb_pathdown - return all delegations after NFS4ERR_CB_PATH_DOWN + * @clp: client to process + * + * Set the NFS4CLNT_LEASE_EXPIRED state in order to force a + * resend of the SETCLIENTID and hence re-establish the + * callback channel. Then return all existing delegations. + */ +void nfs40_handle_cb_pathdown(struct nfs_client *clp) +{ + set_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state); + nfs_expire_all_delegations(clp); + dprintk("%s: handling CB_PATHDOWN recovery for server %s\n", __func__, + clp->cl_hostname); +} + +void nfs4_schedule_path_down_recovery(struct nfs_client *clp) +{ + nfs40_handle_cb_pathdown(clp); + nfs4_schedule_state_manager(clp); +} + /** * nfs40_walk_client_list - Find server that recognizes a client ID * diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index ead4d1ac4d0bb..f3d441bb28af8 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c @@ -54,6 +54,7 @@ #include #include "nfs4_fs.h" +#include "nfs40.h" #include "callback.h" #include "delegation.h" #include "internal.h" @@ -1294,28 +1295,6 @@ int nfs4_client_recover_expired_lease(struct nfs_client *clp) return ret; } -/* - * nfs40_handle_cb_pathdown - return all delegations after NFS4ERR_CB_PATH_DOWN - * @clp: client to process - * - * Set the NFS4CLNT_LEASE_EXPIRED state in order to force a - * resend of the SETCLIENTID and hence re-establish the - * callback channel. Then return all existing delegations. - */ -static void nfs40_handle_cb_pathdown(struct nfs_client *clp) -{ - set_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state); - nfs_expire_all_delegations(clp); - dprintk("%s: handling CB_PATHDOWN recovery for server %s\n", __func__, - clp->cl_hostname); -} - -void nfs4_schedule_path_down_recovery(struct nfs_client *clp) -{ - nfs40_handle_cb_pathdown(clp); - nfs4_schedule_state_manager(clp); -} - static int nfs4_state_mark_reclaim_reboot(struct nfs_client *clp, struct nfs4_state *state) { -- 2.47.3