|
@@ -3374,9 +3374,13 @@ static void nfs4_renew_done(struct rpc_task *task, void *calldata)
|
|
|
|
|
|
if (task->tk_status < 0) {
|
|
|
/* Unless we're shutting down, schedule state recovery! */
|
|
|
- if (test_bit(NFS_CS_RENEWD, &clp->cl_res_state) != 0)
|
|
|
+ if (test_bit(NFS_CS_RENEWD, &clp->cl_res_state) == 0)
|
|
|
+ return;
|
|
|
+ if (task->tk_status != NFS4ERR_CB_PATH_DOWN) {
|
|
|
nfs4_schedule_lease_recovery(clp);
|
|
|
- return;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ nfs4_schedule_path_down_recovery(clp);
|
|
|
}
|
|
|
do_renew_lease(clp, timestamp);
|
|
|
}
|