nfs41: support minorversion 1 for nfs4_check_lease
authorBenny Halevy <bhalevy@panasas.com>
Wed, 1 Apr 2009 13:22:45 +0000 (09:22 -0400)
committerBenny Halevy <bhalevy@panasas.com>
Wed, 17 Jun 2009 19:25:10 +0000 (12:25 -0700)
[moved nfs4_get_renew_cred related changes to
 "nfs41: introduce get_state_renewal_cred"]
Signed-off-by: Benny Halevy <bhalevy@panasas.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs4_fs.h
fs/nfs/nfs4proc.c
fs/nfs/nfs4state.c

index ae25cc21fe7048266e1f4386cbe6534cf01a2052..095bf4690e84ace89569ac52beb4ea2a6005ec21 100644 (file)
@@ -182,6 +182,7 @@ struct nfs4_state_recovery_ops {
 
 struct nfs4_state_maintenance_ops {
        int (*sched_state_renewal)(struct nfs_client *, struct rpc_cred *);
+       int (*renew_lease)(struct nfs_client *, struct rpc_cred *);
 };
 
 extern const struct dentry_operations nfs4_dentry_operations;
index 101ba6aed101926c09d27b668d69da4a02edf843..da481bda44f783ee5857d029dab46fd1c80ab592 100644 (file)
@@ -4795,11 +4795,13 @@ struct nfs4_state_recovery_ops nfs4_nograce_recovery_ops = {
 
 struct nfs4_state_maintenance_ops nfs40_state_renewal_ops = {
        .sched_state_renewal = nfs4_proc_async_renew,
+       .renew_lease = nfs4_proc_renew,
 };
 
 #if defined(CONFIG_NFS_V4_1)
 struct nfs4_state_maintenance_ops nfs41_state_renewal_ops = {
        .sched_state_renewal = nfs41_proc_async_sequence,
+       .renew_lease = nfs4_proc_sequence,
 };
 #endif
 
index 8b7f007adc42af3a759ccc1da0d240b20d8533d0..dc5599c7f4d9ec8944cb6c210da20b685b422d8d 100644 (file)
@@ -1083,6 +1083,8 @@ restart:
 static int nfs4_check_lease(struct nfs_client *clp)
 {
        struct rpc_cred *cred;
+       struct nfs4_state_maintenance_ops *ops =
+               nfs4_state_renewal_ops[clp->cl_minorversion];
        int status = -NFS4ERR_EXPIRED;
 
        /* Is the client already known to have an expired lease? */
@@ -1094,7 +1096,7 @@ static int nfs4_check_lease(struct nfs_client *clp)
                if (cred == NULL)
                        goto out;
        }
-       status = nfs4_proc_renew(clp, cred);
+       status = ops->renew_lease(clp, cred);
        put_rpccred(cred);
 out:
        nfs4_recovery_handle_error(clp, status);