aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRick Macklem <rmacklem@FreeBSD.org>2022-07-09 15:02:14 +0000
committerRick Macklem <rmacklem@FreeBSD.org>2022-07-09 15:02:14 +0000
commitdff31ae1c59cab9437e88bfd0f2abd35ddaa98f1 (patch)
treeefa3e4dfc56e979c13740b41c5c9113e659a6b30
parent9ef1127008ce94cf626daed346a3c1ee03063617 (diff)
downloadsrc-dff31ae1c59cab9437e88bfd0f2abd35ddaa98f1.tar.gz
src-dff31ae1c59cab9437e88bfd0f2abd35ddaa98f1.zip
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
-rw-r--r--sys/fs/nfs/nfs_commonsubs.c28
-rw-r--r--sys/fs/nfs/nfs_var.h4
-rw-r--r--sys/fs/nfsclient/nfs_clrpcops.c28
-rw-r--r--sys/fs/nfsclient/nfs_clstate.c6
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
@@ -5292,34 +5292,6 @@ nfsmout:
}
/*
- * 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.
*/
int
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);