mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-25 10:19:47 +00:00
NFS: Handle NFS4ERR_LEASE_MOVED during async RENEW
With NFSv4 minor version 0, the asynchronous lease RENEW heartbeat can return NFS4ERR_LEASE_MOVED. Error recovery logic for async RENEW is a separate code path from the generic NFS proc paths, so it must be updated to handle NFS4ERR_LEASE_MOVED as well. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
60ea681299
commit
f8aba1e8d5
1 changed files with 7 additions and 1 deletions
|
@ -4235,7 +4235,13 @@ static void nfs4_renew_done(struct rpc_task *task, void *calldata)
|
|||
unsigned long timestamp = data->timestamp;
|
||||
|
||||
trace_nfs4_renew_async(clp, task->tk_status);
|
||||
if (task->tk_status < 0) {
|
||||
switch (task->tk_status) {
|
||||
case 0:
|
||||
break;
|
||||
case -NFS4ERR_LEASE_MOVED:
|
||||
nfs4_schedule_lease_moved_recovery(clp);
|
||||
break;
|
||||
default:
|
||||
/* Unless we're shutting down, schedule state recovery! */
|
||||
if (test_bit(NFS_CS_RENEWD, &clp->cl_res_state) == 0)
|
||||
return;
|
||||
|
|
Loading…
Reference in a new issue