diff mbox series

[v1,2/2] NFSD: Document the phases of CREATE_SESSION

Message ID 170740803579.2139.11630593215813383417.stgit@manet.1015granger.net (mailing list archive)
State New
Headers show
Series Fix CREATE_SESSION | expand

Commit Message

Chuck Lever Feb. 8, 2024, 4 p.m. UTC
From: Chuck Lever <chuck.lever@oracle.com>

As described in RFC 8881 Section 18.36.4, CREATE_SESSION can be
split into four phases. NFSD's implementation now does it like that
description.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 fs/nfsd/nfs4state.c |    6 ++++++
 1 file changed, 6 insertions(+)
diff mbox series

Patch

diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index bca2c2878ad6..3b52728d8cb9 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -3614,6 +3614,8 @@  nfsd4_create_session(struct svc_rqst *rqstp,
 		goto out_free_session;
 
 	spin_lock(&nn->client_lock);
+
+	/* RFC 8881 Section 18.36.4 Phase 1: Client record look-up. */
 	unconf = find_unconfirmed_client(&cr_ses->clientid, true, nn);
 	conf = find_confirmed_client(&cr_ses->clientid, true, nn);
 	if (!conf && !unconf) {
@@ -3621,6 +3623,7 @@  nfsd4_create_session(struct svc_rqst *rqstp,
 		goto out_free_conn;
 	}
 
+	/* RFC 8881 Section 18.36.4 Phase 2: Sequence ID processing. */
 	if (conf)
 		cs_slot = &conf->cl_cs_slot;
 	else
@@ -3636,6 +3639,7 @@  nfsd4_create_session(struct svc_rqst *rqstp,
 	cs_slot->sl_seqid++;
 	cr_ses->seqid = cs_slot->sl_seqid;
 
+	/* RFC 8881 Section 18.36.4 Phase 3: Client ID confirmation. */
 	if (conf) {
 		status = nfserr_wrong_cred;
 		if (!nfsd4_mach_creds_match(conf, rqstp))
@@ -3662,6 +3666,8 @@  nfsd4_create_session(struct svc_rqst *rqstp,
 		move_to_confirmed(unconf);
 		conf = unconf;
 	}
+
+	/* RFC 8881 Section 18.36.4 Phase 4: Session creation. */
 	status = nfs_ok;
 	/* Persistent sessions are not supported */
 	cr_ses->flags &= ~SESSION4_PERSIST;