svn commit: r360518 - projects/nfs-over-tls/sys/fs/nfs

Rick Macklem rmacklem at FreeBSD.org
Fri May 1 01:30:11 UTC 2020


Author: rmacklem
Date: Fri May  1 01:30:11 2020
New Revision: 360518
URL: https://svnweb.freebsd.org/changeset/base/360518

Log:
  Modify nfsm_copyfrommbuf() so that it calls nfsm_copfrommbuf_extpgs() for
  the ext_pgs mbuf case.
  
  This small change simplifies the callers and minimizes the changes required
  to integrate ext_pgs mbuf handling into the code in head.

Modified:
  projects/nfs-over-tls/sys/fs/nfs/nfs_commonsubs.c

Modified: projects/nfs-over-tls/sys/fs/nfs/nfs_commonsubs.c
==============================================================================
--- projects/nfs-over-tls/sys/fs/nfs/nfs_commonsubs.c	Fri May  1 01:26:36 2020	(r360517)
+++ projects/nfs-over-tls/sys/fs/nfs/nfs_commonsubs.c	Fri May  1 01:30:11 2020	(r360518)
@@ -656,12 +656,8 @@ nfsm_mbufuio(struct nfsrv_descript *nd, struct uio *ui
 			left = siz;
 		uiosiz = left;
 		while (left > 0) {
-			if ((nd->nd_md->m_flags & M_NOMAP) != 0)
-				xfer = nfsm_copyfrommbuf_extpgs(nd, uiocp,
-				    uiop->uio_segflg, left);
-			else
-				xfer = nfsm_copyfrommbuf(nd, uiocp,
-				    uiop->uio_segflg, left);
+			xfer = nfsm_copyfrommbuf(nd, uiocp, uiop->uio_segflg,
+			    left);
 			left -= xfer;
 			uiocp += xfer;
 			uiop->uio_offset += xfer;
@@ -771,12 +767,7 @@ nfsm_dissct(struct nfsrv_descript *nd, int siz, int ho
 			if (nd->nd_md == NULL)
 				return (NULL);
 			nfsm_set(nd, 0, false);
-			if ((nd->nd_md->m_flags & M_NOMAP) != 0)
-				xfer = nfsm_copyfrommbuf_extpgs(nd, p,
-				    UIO_SYSSPACE, siz2);
-			else
-				xfer = nfsm_copyfrommbuf(nd, p,
-				    UIO_SYSSPACE, siz2);
+			xfer = nfsm_copyfrommbuf(nd, p, UIO_SYSSPACE, siz2);
 			p += xfer;
 			siz2 -= xfer;
 			if (siz2 > 0)
@@ -2479,12 +2470,7 @@ nfsrv_mtostr(struct nfsrv_descript *nd, char *str, int
 
 	rem = NFSM_RNDUP(siz) - siz;
 	while (siz > 0) {
-		if ((nd->nd_md->m_flags & M_NOMAP) != 0)
-			xfer = nfsm_copyfrommbuf_extpgs(nd, str,
-			    UIO_SYSSPACE, siz);
-		else
-			xfer = nfsm_copyfrommbuf(nd, str,
-			    UIO_SYSSPACE, siz);
+		xfer = nfsm_copyfrommbuf(nd, str, UIO_SYSSPACE, siz);
 		str += xfer;
 		siz -= xfer;
 		if (siz > 0 && !nfsm_shiftnext(nd, &xfer)) {
@@ -4972,6 +4958,10 @@ nfsm_copyfrommbuf(struct nfsrv_descript *nd, char *cp,
 	int xfer;
 
 	m = nd->nd_md;
+	if ((m->m_flags & M_NOMAP) != 0) {
+		xfer = nfsm_copyfrommbuf_extpgs(nd, cp, segflg, len);
+		return (xfer);
+	}
 	xfer = mtod(m, char *) + m->m_len - nd->nd_dpos;
 	xfer = min(xfer, len);
 	if (xfer > 0) {


More information about the svn-src-projects mailing list