diff options
| -rw-r--r-- | fs/nfs/nfs4proc.c | 2 | ||||
| -rw-r--r-- | fs/nfs/nfs4renewd.c | 12 |
2 files changed, 11 insertions, 3 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 6ca0c8e7a945..0422d77b73c7 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
| @@ -7353,7 +7353,7 @@ static int nfs41_proc_async_sequence(struct nfs_client *clp, struct rpc_cred *cr | |||
| 7353 | int ret = 0; | 7353 | int ret = 0; |
| 7354 | 7354 | ||
| 7355 | if ((renew_flags & NFS4_RENEW_TIMEOUT) == 0) | 7355 | if ((renew_flags & NFS4_RENEW_TIMEOUT) == 0) |
| 7356 | return 0; | 7356 | return -EAGAIN; |
| 7357 | task = _nfs41_proc_sequence(clp, cred, false); | 7357 | task = _nfs41_proc_sequence(clp, cred, false); |
| 7358 | if (IS_ERR(task)) | 7358 | if (IS_ERR(task)) |
| 7359 | ret = PTR_ERR(task); | 7359 | ret = PTR_ERR(task); |
diff --git a/fs/nfs/nfs4renewd.c b/fs/nfs/nfs4renewd.c index 1720d32ffa54..e1ba58c3d1ad 100644 --- a/fs/nfs/nfs4renewd.c +++ b/fs/nfs/nfs4renewd.c | |||
| @@ -88,10 +88,18 @@ nfs4_renew_state(struct work_struct *work) | |||
| 88 | } | 88 | } |
| 89 | nfs_expire_all_delegations(clp); | 89 | nfs_expire_all_delegations(clp); |
| 90 | } else { | 90 | } else { |
| 91 | int ret; | ||
| 92 | |||
| 91 | /* Queue an asynchronous RENEW. */ | 93 | /* Queue an asynchronous RENEW. */ |
| 92 | ops->sched_state_renewal(clp, cred, renew_flags); | 94 | ret = ops->sched_state_renewal(clp, cred, renew_flags); |
| 93 | put_rpccred(cred); | 95 | put_rpccred(cred); |
| 94 | goto out_exp; | 96 | switch (ret) { |
| 97 | default: | ||
| 98 | goto out_exp; | ||
| 99 | case -EAGAIN: | ||
| 100 | case -ENOMEM: | ||
| 101 | break; | ||
| 102 | } | ||
| 95 | } | 103 | } |
| 96 | } else { | 104 | } else { |
| 97 | dprintk("%s: failed to call renewd. Reason: lease not expired \n", | 105 | dprintk("%s: failed to call renewd. Reason: lease not expired \n", |
