Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8e69514f authored by Benny Halevy's avatar Benny Halevy
Browse files

nfs41: support minorversion 1 for nfs4_check_lease



[moved nfs4_get_renew_cred related changes to
 "nfs41: introduce get_state_renewal_cred"]
Signed-off-by: default avatarBenny Halevy <bhalevy@panasas.com>
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 29fba38b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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;
+2 −0
Original line number Diff line number Diff line
@@ -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

+3 −1
Original line number Diff line number Diff line
@@ -1083,6 +1083,8 @@ static int nfs4_do_reclaim(struct nfs_client *clp, const struct nfs4_state_recov
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);