summaryrefslogtreecommitdiffstats
path: root/fs/nfs/nfs4state.c
diff options
context:
space:
mode:
authorTrond Myklebust2011-08-24 21:07:37 +0200
committerTrond Myklebust2011-08-24 21:07:37 +0200
commit042b60beb410caf68f576d63d6849d0f0a545eb0 (patch)
tree82f2a8c3ed32deb165181373b619dd04902e13cc /fs/nfs/nfs4state.c
parentNFSv4: The NFSv4.0 client must send RENEW calls if it holds a delegation (diff)
downloadkernel-qcow2-linux-042b60beb410caf68f576d63d6849d0f0a545eb0.tar.gz
kernel-qcow2-linux-042b60beb410caf68f576d63d6849d0f0a545eb0.tar.xz
kernel-qcow2-linux-042b60beb410caf68f576d63d6849d0f0a545eb0.zip
NFSv4: renewd needs to be able to handle the NFS4ERR_CB_PATH_DOWN error
The NFSv4 spec does not specify that the server must repeat that error, so in order to avoid having the delegations revoked, we should handle it immediately. Also note that NFS4ERR_CB_PATH_DOWN does in fact renew the lease... Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4state.c')
-rw-r--r--fs/nfs/nfs4state.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index 72ab97ef3d61..39914be40b03 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -1038,6 +1038,12 @@ void nfs4_schedule_lease_recovery(struct nfs_client *clp)
nfs4_schedule_state_manager(clp);
}
+void nfs4_schedule_path_down_recovery(struct nfs_client *clp)
+{
+ nfs_handle_cb_pathdown(clp);
+ nfs4_schedule_state_manager(clp);
+}
+
static int nfs4_state_mark_reclaim_reboot(struct nfs_client *clp, struct nfs4_state *state)
{