[pnfs] [PATCH 01/20] 2.6-latest sessions client turn off state renewal
andros at umich.edu
andros at umich.edu
Wed Nov 28 16:33:02 EST 2007
From: Andy Adamson <andros at umich.edu>
The NFSv4.1 sched_state_renewal function nfs41_proc_async_sequence() fails
to set any fields in the struct nfs41_sequence_res which means that
nfs41_sequence_done() has a garbage slot (slot = res->sr_slot), and causes a
seg fault.
Futhermore, the credential for state renewal is obtained by
nfs4_get_renew_cred() which looks for an open state credential. This will fail
for exchange_id, create_session, etc...
Fortunately, the session state recovery code works!
Turn off NFSv4.1 state renewal until fixed.
Signed-off by: Andy Adamson<andros at umich.edu>
---
fs/nfs/nfs4renewd.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/fs/nfs/nfs4renewd.c b/fs/nfs/nfs4renewd.c
index 69cc8ca..cf7f46b 100644
--- a/fs/nfs/nfs4renewd.c
+++ b/fs/nfs/nfs4renewd.c
@@ -81,7 +81,13 @@ nfs4_renew_state(struct work_struct *work)
timeout = (2 * lease) / 3 + (long)last - (long)now;
/* Are we close to a lease timeout? */
if (time_after(now, last + lease/3)) {
+#if defined CONFIG_NFS_V4_1
+ dprintk("%s NO STATE RENEWAL: ops->sched_state_renewal()",
+ "not implemented\n", __func__);
+ cred = NULL;
+#else
cred = nfs4_get_renew_cred(clp);
+#endif /* CONFIG_NFS_V4_1 */
if (cred == NULL) {
set_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state);
spin_unlock(&clp->cl_lock);
--
1.5.0.2
More information about the pNFS
mailing list