From 41b5205f518c20056c4b3607412e25a626533d68 Mon Sep 17 00:00:00 2001 From: Trond Myklebust Date: Fri, 25 May 2012 15:00:06 -0400 Subject: [PATCH] --- yaml --- r: 308667 b: refs/heads/master c: 89a217360ef4e96eb83758cb9647f1c42581b097 h: refs/heads/master i: 308665: 48cd96e9abc9386c8213b8fc5052ac815f35d173 308663: 0746040451638b6dc56d30541a622c5195ae30bb v: v3 --- [refs] | 2 +- trunk/fs/nfs/nfs4state.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 4cf28c752770..de0eed6944d0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: be0bfed002e0c64a91dacc42a4dab6e883e6bc7e +refs/heads/master: 89a217360ef4e96eb83758cb9647f1c42581b097 diff --git a/trunk/fs/nfs/nfs4state.c b/trunk/fs/nfs/nfs4state.c index 604c6009d1ac..419f8c44429e 100644 --- a/trunk/fs/nfs/nfs4state.c +++ b/trunk/fs/nfs/nfs4state.c @@ -1580,6 +1580,11 @@ static int nfs4_check_lease(struct nfs_client *clp) static int nfs4_handle_reclaim_lease_error(struct nfs_client *clp, int status) { switch (status) { + case -NFS4ERR_SEQ_MISORDERED: + if (test_and_set_bit(NFS4CLNT_PURGE_STATE, &clp->cl_state)) + return -ESERVERFAULT; + /* Lease confirmation error: retry after purging the lease */ + ssleep(1); case -NFS4ERR_CLID_INUSE: case -NFS4ERR_STALE_CLIENTID: clear_bit(NFS4CLNT_LEASE_CONFIRM, &clp->cl_state);