summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@primarydata.com>2017-01-13 13:31:32 -0500
committerTrond Myklebust <trond.myklebust@primarydata.com>2017-01-13 13:31:32 -0500
commitc6180a6237174f481dc856ed6e890d8196b6f0fb (patch)
tree84299b10bbb0200b05ec9821e655a5ac3c97daf8
parentd3129ef672cac81c4d0185336af377c8dc1091d3 (diff)
downloadlinux-stable-c6180a6237174f481dc856ed6e890d8196b6f0fb.tar.gz
linux-stable-c6180a6237174f481dc856ed6e890d8196b6f0fb.tar.bz2
linux-stable-c6180a6237174f481dc856ed6e890d8196b6f0fb.zip
NFSv4: Fix client recovery when server reboots multiple times
If the server reboots multiple times, the client should rely on the server to tell it that it cannot reclaim state as per section 9.6.3.4 in RFC7530 and section 8.4.2.1 in RFC5661. Currently, the client is being to conservative, and is assuming that if the server reboots while state recovery is in progress, then it must ignore state that was not recovered before the reboot. Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
-rw-r--r--fs/nfs/nfs4state.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index 1d152f4470cd..90e6193ce6be 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -1729,7 +1729,6 @@ static int nfs4_recovery_handle_error(struct nfs_client *clp, int error)
break;
case -NFS4ERR_STALE_CLIENTID:
set_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state);
- nfs4_state_clear_reclaim_reboot(clp);
nfs4_state_start_reclaim_reboot(clp);
break;
case -NFS4ERR_EXPIRED: