projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'depends/rmk/debug' into highbank/soc
[cascardo/linux.git]
/
fs
/
nfs
/
nfs4renewd.c
diff --git
a/fs/nfs/nfs4renewd.c
b/fs/nfs/nfs4renewd.c
index
df8e7f3
..
dc484c0
100644
(file)
--- a/
fs/nfs/nfs4renewd.c
+++ b/
fs/nfs/nfs4renewd.c
@@
-60,6
+60,7
@@
nfs4_renew_state(struct work_struct *work)
struct rpc_cred *cred;
long lease;
unsigned long last, now;
struct rpc_cred *cred;
long lease;
unsigned long last, now;
+ unsigned renew_flags = 0;
ops = clp->cl_mvops->state_renewal_ops;
dprintk("%s: start\n", __func__);
ops = clp->cl_mvops->state_renewal_ops;
dprintk("%s: start\n", __func__);
@@
-72,18
+73,23
@@
nfs4_renew_state(struct work_struct *work)
last = clp->cl_last_renewal;
now = jiffies;
/* Are we close to a lease timeout? */
last = clp->cl_last_renewal;
now = jiffies;
/* Are we close to a lease timeout? */
- if (time_after(now, last + lease/3)) {
+ if (time_after(now, last + lease/3))
+ renew_flags |= NFS4_RENEW_TIMEOUT;
+ if (nfs_delegations_present(clp))
+ renew_flags |= NFS4_RENEW_DELEGATION_CB;
+
+ if (renew_flags != 0) {
cred = ops->get_state_renewal_cred_locked(clp);
spin_unlock(&clp->cl_lock);
if (cred == NULL) {
cred = ops->get_state_renewal_cred_locked(clp);
spin_unlock(&clp->cl_lock);
if (cred == NULL) {
- if (!
nfs_delegations_present(clp
)) {
+ if (!
(renew_flags & NFS4_RENEW_DELEGATION_CB
)) {
set_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state);
goto out;
}
nfs_expire_all_delegations(clp);
} else {
/* Queue an asynchronous RENEW. */
set_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state);
goto out;
}
nfs_expire_all_delegations(clp);
} else {
/* Queue an asynchronous RENEW. */
- ops->sched_state_renewal(clp, cred);
+ ops->sched_state_renewal(clp, cred
, renew_flags
);
put_rpccred(cred);
goto out_exp;
}
put_rpccred(cred);
goto out_exp;
}