diff options
Diffstat (limited to 'fs/nfs/nfs4state.c')
-rw-r--r-- | fs/nfs/nfs4state.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index 1cfc4603fd9..81eabcdad0e 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c | |||
@@ -1606,10 +1606,15 @@ static int nfs4_handle_reclaim_lease_error(struct nfs_client *clp, int status) | |||
1606 | return -ESERVERFAULT; | 1606 | return -ESERVERFAULT; |
1607 | /* Lease confirmation error: retry after purging the lease */ | 1607 | /* Lease confirmation error: retry after purging the lease */ |
1608 | ssleep(1); | 1608 | ssleep(1); |
1609 | case -NFS4ERR_CLID_INUSE: | ||
1610 | case -NFS4ERR_STALE_CLIENTID: | 1609 | case -NFS4ERR_STALE_CLIENTID: |
1611 | clear_bit(NFS4CLNT_LEASE_CONFIRM, &clp->cl_state); | 1610 | clear_bit(NFS4CLNT_LEASE_CONFIRM, &clp->cl_state); |
1612 | break; | 1611 | break; |
1612 | case -NFS4ERR_CLID_INUSE: | ||
1613 | pr_err("NFS: Server %s reports our clientid is in use\n", | ||
1614 | clp->cl_hostname); | ||
1615 | nfs_mark_client_ready(clp, -EPERM); | ||
1616 | clear_bit(NFS4CLNT_LEASE_CONFIRM, &clp->cl_state); | ||
1617 | return -EPERM; | ||
1613 | case -EACCES: | 1618 | case -EACCES: |
1614 | if (clp->cl_machine_cred == NULL) | 1619 | if (clp->cl_machine_cred == NULL) |
1615 | return -EACCES; | 1620 | return -EACCES; |