git: dff31ae1c59c - main - nfscl: Move nfsrpc_destroysession into nfscommon

From: Rick Macklem <rmacklem_at_FreeBSD.org>
Date: Sat, 09 Jul 2022 15:03:41 UTC
The branch main has been updated by rmacklem:

URL: https://cgit.FreeBSD.org/src/commit/?id=dff31ae1c59cab9437e88bfd0f2abd35ddaa98f1

commit dff31ae1c59cab9437e88bfd0f2abd35ddaa98f1
Author:     Rick Macklem <rmacklem@FreeBSD.org>
AuthorDate: 2022-07-09 15:02:14 +0000
Commit:     Rick Macklem <rmacklem@FreeBSD.org>
CommitDate: 2022-07-09 15:02:14 +0000

    nfscl: Move nfsrpc_destroysession into nfscommon
    
    This patch moves nfsrpc_destroysession() into nfscommon.ko
    and also modifies its arguments slightly.  This will allow
    the function to be called from nfsv4_sequencelookup() in
    a future commit.
    
    This patch should not result in a semantics change.
    
    PR: 260011
    MFC after:      2 weeks
---
 sys/fs/nfs/nfs_commonsubs.c     | 28 ++++++++++++++++++++++++++++
 sys/fs/nfs/nfs_var.h            |  4 ++--
 sys/fs/nfsclient/nfs_clrpcops.c | 28 ----------------------------
 sys/fs/nfsclient/nfs_clstate.c  |  6 +++---
 4 files changed, 33 insertions(+), 33 deletions(-)

diff --git a/sys/fs/nfs/nfs_commonsubs.c b/sys/fs/nfs/nfs_commonsubs.c
index c983126acf94..4c38d29ed281 100644
--- a/sys/fs/nfs/nfs_commonsubs.c
+++ b/sys/fs/nfs/nfs_commonsubs.c
@@ -4985,3 +4985,31 @@ nfsm_add_ext_pgs(struct mbuf *m, int maxextsiz, int *bextpg)
 	}
 	return (mp);
 }
+
+/*
+ * Do the NFSv4.1 Destroy Session.
+ */
+int
+nfsrpc_destroysession(struct nfsmount *nmp, struct nfsclsession *tsep,
+    struct ucred *cred, NFSPROC_T *p)
+{
+	uint32_t *tl;
+	struct nfsrv_descript nfsd;
+	struct nfsrv_descript *nd = &nfsd;
+	int error;
+
+	nfscl_reqstart(nd, NFSPROC_DESTROYSESSION, nmp, NULL, 0, NULL, NULL, 0,
+	    0, NULL);
+	NFSM_BUILD(tl, uint32_t *, NFSX_V4SESSIONID);
+	if (tsep == NULL)
+		tsep = nfsmnt_mdssession(nmp);
+	bcopy(tsep->nfsess_sessionid, tl, NFSX_V4SESSIONID);
+	nd->nd_flag |= ND_USEGSSNAME;
+	error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred,
+	    NFS_PROG, NFS_VER4, NULL, 1, NULL, NULL);
+	if (error != 0)
+		return (error);
+	error = nd->nd_repstat;
+	m_freem(nd->nd_mrep);
+	return (error);
+}
diff --git a/sys/fs/nfs/nfs_var.h b/sys/fs/nfs/nfs_var.h
index f087ee6785ef..a9648de6b028 100644
--- a/sys/fs/nfs/nfs_var.h
+++ b/sys/fs/nfs/nfs_var.h
@@ -366,6 +366,8 @@ struct ucred *nfsrv_getgrpscred(struct ucred *);
 struct nfsdevice *nfsv4_findmirror(struct nfsmount *);
 void nfsm_set(struct nfsrv_descript *, u_int);
 struct mbuf *nfsm_add_ext_pgs(struct mbuf *, int, int *);
+int nfsrpc_destroysession(struct nfsmount *, struct nfsclsession *,
+    struct ucred *, NFSPROC_T *);
 
 /* nfs_clcomsubs.c */
 void nfsm_uiombuf(struct nfsrv_descript *, struct uio *, int);
@@ -530,8 +532,6 @@ int nfsrpc_exchangeid(struct nfsmount *, struct nfsclclient *,
 int nfsrpc_createsession(struct nfsmount *, struct nfsclsession *,
     struct nfssockreq *, struct nfsclds *, uint32_t, int, struct ucred *,
     NFSPROC_T *);
-int nfsrpc_destroysession(struct nfsmount *, struct nfsclclient *,
-    struct ucred *, NFSPROC_T *);
 int nfsrpc_destroyclient(struct nfsmount *, struct nfsclclient *,
     struct ucred *, NFSPROC_T *);
 int nfsrpc_getdeviceinfo(struct nfsmount *, uint8_t *, int, uint32_t *,
diff --git a/sys/fs/nfsclient/nfs_clrpcops.c b/sys/fs/nfsclient/nfs_clrpcops.c
index 05d98d52be4d..f5a74ecd7d65 100644
--- a/sys/fs/nfsclient/nfs_clrpcops.c
+++ b/sys/fs/nfsclient/nfs_clrpcops.c
@@ -5291,34 +5291,6 @@ nfsmout:
 	return (error);
 }
 
-/*
- * Do the NFSv4.1 Destroy Session.
- */
-int
-nfsrpc_destroysession(struct nfsmount *nmp, struct nfsclclient *clp,
-    struct ucred *cred, NFSPROC_T *p)
-{
-	uint32_t *tl;
-	struct nfsrv_descript nfsd;
-	struct nfsrv_descript *nd = &nfsd;
-	int error;
-	struct nfsclsession *tsep;
-
-	nfscl_reqstart(nd, NFSPROC_DESTROYSESSION, nmp, NULL, 0, NULL, NULL, 0,
-	    0, NULL);
-	NFSM_BUILD(tl, uint32_t *, NFSX_V4SESSIONID);
-	tsep = nfsmnt_mdssession(nmp);
-	bcopy(tsep->nfsess_sessionid, tl, NFSX_V4SESSIONID);
-	nd->nd_flag |= ND_USEGSSNAME;
-	error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred,
-	    NFS_PROG, NFS_VER4, NULL, 1, NULL, NULL);
-	if (error != 0)
-		return (error);
-	error = nd->nd_repstat;
-	m_freem(nd->nd_mrep);
-	return (error);
-}
-
 /*
  * Do the NFSv4.1 Destroy Client.
  */
diff --git a/sys/fs/nfsclient/nfs_clstate.c b/sys/fs/nfsclient/nfs_clstate.c
index 41ebbe8213c5..406f66c86287 100644
--- a/sys/fs/nfsclient/nfs_clstate.c
+++ b/sys/fs/nfsclient/nfs_clstate.c
@@ -2093,10 +2093,10 @@ nfscl_umount(struct nfsmount *nmp, NFSPROC_T *p, struct nfscldeleghead *dhp)
 		nfscl_delegreturnall(clp, p, dhp);
 		cred = newnfs_getcred();
 		if (NFSHASNFSV4N(nmp)) {
-			(void)nfsrpc_destroysession(nmp, clp, cred, p);
-			(void)nfsrpc_destroyclient(nmp, clp, cred, p);
+			nfsrpc_destroysession(nmp, NULL, cred, p);
+			nfsrpc_destroyclient(nmp, clp, cred, p);
 		} else
-			(void)nfsrpc_setclient(nmp, clp, 0, NULL, cred, p);
+			nfsrpc_setclient(nmp, clp, 0, NULL, cred, p);
 		nfscl_cleanclient(clp);
 		nmp->nm_clp = NULL;
 		NFSFREECRED(cred);