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

Commit 5df904ae authored by Trond Myklebust's avatar Trond Myklebust
Browse files

NFSv4.1: Handle session reset and bind_conn_to_session before lease check



We can't send a SEQUENCE op unless the session is OK, so it is pointless
to handle the CHECK_LEASE state before we've dealt with SESSION_RESET
and BIND_CONN_TO_SESSION.

Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 6bdb5f21
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -2114,15 +2114,6 @@ static void nfs4_state_manager(struct nfs_client *clp)
			continue;
		}

		if (test_and_clear_bit(NFS4CLNT_CHECK_LEASE, &clp->cl_state)) {
			section = "check lease";
			status = nfs4_check_lease(clp);
			if (status < 0)
				goto out_error;
			if (test_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state))
				continue;
		}

		/* Initialize or reset the session */
		if (test_and_clear_bit(NFS4CLNT_SESSION_RESET, &clp->cl_state)) {
			section = "reset session";
@@ -2143,6 +2134,14 @@ static void nfs4_state_manager(struct nfs_client *clp)
			continue;
		}

		if (test_and_clear_bit(NFS4CLNT_CHECK_LEASE, &clp->cl_state)) {
			section = "check lease";
			status = nfs4_check_lease(clp);
			if (status < 0)
				goto out_error;
			continue;
		}

		/* Recall session slots */
		if (test_and_clear_bit(NFS4CLNT_RECALL_SLOT, &clp->cl_state)) {
			section = "recall slot";