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", |