From owner-svn-src-projects@freebsd.org Sun May 10 21:37:41 2020 Return-Path: Delivered-To: svn-src-projects@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A230D2F4D0B for ; Sun, 10 May 2020 21:37:41 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 49Ky8j3r1dz3DBG; Sun, 10 May 2020 21:37:41 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7EC9BBEB9; Sun, 10 May 2020 21:37:41 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 04ALbfSs050325; Sun, 10 May 2020 21:37:41 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 04ALbelj050315; Sun, 10 May 2020 21:37:40 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <202005102137.04ALbelj050315@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Sun, 10 May 2020 21:37:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r360884 - in projects/nfs-over-tls/sys/fs: nfs nfsclient nfsserver X-SVN-Group: projects X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: in projects/nfs-over-tls/sys/fs: nfs nfsclient nfsserver X-SVN-Commit-Revision: 360884 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 May 2020 21:37:41 -0000 Author: rmacklem Date: Sun May 10 21:37:39 2020 New Revision: 360884 URL: https://svnweb.freebsd.org/changeset/base/360884 Log: Simplify nfsm_set() so that it does not do the dissect case. This will simplify integration with head. Modified: projects/nfs-over-tls/sys/fs/nfs/nfs_commonkrpc.c projects/nfs-over-tls/sys/fs/nfs/nfs_commonsubs.c projects/nfs-over-tls/sys/fs/nfs/nfs_var.h projects/nfs-over-tls/sys/fs/nfsclient/nfs_clkrpc.c projects/nfs-over-tls/sys/fs/nfsserver/nfs_fha_new.c projects/nfs-over-tls/sys/fs/nfsserver/nfs_nfsdkrpc.c projects/nfs-over-tls/sys/fs/nfsserver/nfs_nfsdport.c Modified: projects/nfs-over-tls/sys/fs/nfs/nfs_commonkrpc.c ============================================================================== --- projects/nfs-over-tls/sys/fs/nfs/nfs_commonkrpc.c Sun May 10 20:44:43 2020 (r360883) +++ projects/nfs-over-tls/sys/fs/nfs/nfs_commonkrpc.c Sun May 10 21:37:39 2020 (r360884) @@ -895,7 +895,7 @@ tryagain: */ newnfs_realign(&nd->nd_mrep, M_WAITOK); nd->nd_md = nd->nd_mrep; - nfsm_set(nd, ext.rc_mbufoffs, false); + nd->nd_dpos = mtod(nd->nd_md, char *); nd->nd_repstat = 0; if (nd->nd_procnum != NFSPROC_NULL && nd->nd_procnum != NFSV4PROC_CBNULL) { Modified: projects/nfs-over-tls/sys/fs/nfs/nfs_commonsubs.c ============================================================================== --- projects/nfs-over-tls/sys/fs/nfs/nfs_commonsubs.c Sun May 10 20:44:43 2020 (r360883) +++ projects/nfs-over-tls/sys/fs/nfs/nfs_commonsubs.c Sun May 10 21:37:39 2020 (r360884) @@ -380,7 +380,7 @@ nfscl_reqstart(struct nfsrv_descript *nd, int procnum, mb = mb_alloc_ext_plus_pages(PAGE_SIZE, M_WAITOK, mb_free_mext_pgs); nd->nd_mreq = nd->nd_mb = mb; - nfsm_set(nd, 0, true); + nfsm_set(nd, 0); } else { if (nfs_bigrequest[procnum]) NFSMCLGET(mb, M_WAITOK); @@ -4873,81 +4873,49 @@ nfsv4_findmirror(struct nfsmount *nmp) * The build argument is true for build and false for dissect. */ int -nfsm_set(struct nfsrv_descript *nd, u_int offs, bool build) +nfsm_set(struct nfsrv_descript *nd, u_int offs) { struct mbuf *m; struct mbuf_ext_pgs *pgs; int rlen; - if (build) - m = nd->nd_mb; - else - m = nd->nd_md; + m = nd->nd_mb; if ((m->m_flags & M_NOMAP) != 0) { - if (build) { - pgs = &m->m_ext_pgs; - nd->nd_bextpg = 0; - while (offs > 0) { - if (nd->nd_bextpg == 0) - rlen = mbuf_ext_pg_len(pgs, 0, - pgs->first_pg_off); - else - rlen = mbuf_ext_pg_len(pgs, - nd->nd_bextpg, 0); - if (offs <= rlen) - break; - offs -= rlen; - nd->nd_bextpg++; - if (nd->nd_bextpg == pgs->npgs) { - printf("nfsm_set: build offs " - "out of range\n"); - nd->nd_bextpg--; - break; - } - } - nd->nd_bpos = (char *)(void *) - PHYS_TO_DMAP(m->m_epg_pa[nd->nd_bextpg]); + pgs = &m->m_ext_pgs; + nd->nd_bextpg = 0; + while (offs > 0) { if (nd->nd_bextpg == 0) - nd->nd_bpos += pgs->first_pg_off; - if (offs > 0) { - nd->nd_bpos += offs; - rlen = nd->nd_bextpgsiz = rlen - offs; - } else if (nd->nd_bextpg == 0) - rlen = nd->nd_bextpgsiz = PAGE_SIZE - - pgs->first_pg_off; + rlen = mbuf_ext_pg_len(pgs, 0, + pgs->first_pg_off); else - rlen = nd->nd_bextpgsiz = PAGE_SIZE; - } else { - pgs = &m->m_ext_pgs; - nd->nd_dextpg = 0; - do { - nd->nd_dpos = (char *)(void *) - PHYS_TO_DMAP(m->m_epg_pa[nd->nd_dextpg]); - if (nd->nd_dextpg == 0) { - nd->nd_dpos += pgs->first_pg_off; - rlen = nd->nd_dextpgsiz = - mbuf_ext_pg_len(pgs, 0, - pgs->first_pg_off); - } else - rlen = nd->nd_dextpgsiz = - mbuf_ext_pg_len(pgs, - nd->nd_dextpg, 0); - if (offs > rlen) { - nd->nd_dextpg++; - offs -= rlen; - } else if (offs > 0) { - nd->nd_dpos += offs; - nd->nd_dextpgsiz -= offs; - offs = 0; - } - } while (offs > 0); + rlen = mbuf_ext_pg_len(pgs, + nd->nd_bextpg, 0); + if (offs <= rlen) + break; + offs -= rlen; + nd->nd_bextpg++; + if (nd->nd_bextpg == pgs->npgs) { + printf("nfsm_set: build offs " + "out of range\n"); + nd->nd_bextpg--; + break; + } } - } else if (build) { + nd->nd_bpos = (char *)(void *) + PHYS_TO_DMAP(m->m_epg_pa[nd->nd_bextpg]); + if (nd->nd_bextpg == 0) + nd->nd_bpos += pgs->first_pg_off; + if (offs > 0) { + nd->nd_bpos += offs; + rlen = nd->nd_bextpgsiz = rlen - offs; + } else if (nd->nd_bextpg == 0) + rlen = nd->nd_bextpgsiz = PAGE_SIZE - + pgs->first_pg_off; + else + rlen = nd->nd_bextpgsiz = PAGE_SIZE; + } else { nd->nd_bpos = mtod(m, char *) + offs; rlen = m->m_len - offs; - } else { - nd->nd_dpos = mtod(m, char *); - rlen = m->m_len; } return (rlen); } Modified: projects/nfs-over-tls/sys/fs/nfs/nfs_var.h ============================================================================== --- projects/nfs-over-tls/sys/fs/nfs/nfs_var.h Sun May 10 20:44:43 2020 (r360883) +++ projects/nfs-over-tls/sys/fs/nfs/nfs_var.h Sun May 10 21:37:39 2020 (r360884) @@ -361,7 +361,7 @@ int nfsv4_sequencelookup(struct nfsmount *, struct nfs void nfsv4_freeslot(struct nfsclsession *, int); struct ucred *nfsrv_getgrpscred(struct ucred *); struct nfsdevice *nfsv4_findmirror(struct nfsmount *); -int nfsm_set(struct nfsrv_descript *, u_int, bool); +int nfsm_set(struct nfsrv_descript *, u_int); /* nfs_clcomsubs.c */ void nfsm_uiombuf(struct nfsrv_descript *, struct uio *, int); Modified: projects/nfs-over-tls/sys/fs/nfsclient/nfs_clkrpc.c ============================================================================== --- projects/nfs-over-tls/sys/fs/nfsclient/nfs_clkrpc.c Sun May 10 20:44:43 2020 (r360883) +++ projects/nfs-over-tls/sys/fs/nfsclient/nfs_clkrpc.c Sun May 10 21:37:39 2020 (r360884) @@ -95,7 +95,7 @@ printf("cbprogram proc=%d\n", rqst->rq_proc); newnfs_realign(&nd.nd_mrep, M_WAITOK); nd.nd_md = nd.nd_mrep; printf("cbreq nd_md=%p offs=%d\n", nd.nd_md, rqst->rq_xprt->xp_mbufoffs); - nfsm_set(&nd, rqst->rq_xprt->xp_mbufoffs, false); + nd.nd_dpos = mtod(nd.nd_md, char *); nd.nd_nam = svc_getrpccaller(rqst); nd.nd_nam2 = rqst->rq_addr; nd.nd_mreq = NULL; Modified: projects/nfs-over-tls/sys/fs/nfsserver/nfs_fha_new.c ============================================================================== --- projects/nfs-over-tls/sys/fs/nfsserver/nfs_fha_new.c Sun May 10 20:44:43 2020 (r360883) +++ projects/nfs-over-tls/sys/fs/nfsserver/nfs_fha_new.c Sun May 10 21:37:39 2020 (r360884) @@ -338,7 +338,7 @@ fha_extract_info(struct svc_req *req, struct fha_info if (error) goto out; nd->nd_md = req->rq_args; - nfsm_set(nd, req->rq_xprt->xp_mbufoffs, false); + nd->nd_dpos = mtod(nd->nd_md, char *); /* Grab the filehandle. */ error = fhanew_get_fh(&i->fh, v3, nd); Modified: projects/nfs-over-tls/sys/fs/nfsserver/nfs_nfsdkrpc.c ============================================================================== --- projects/nfs-over-tls/sys/fs/nfsserver/nfs_nfsdkrpc.c Sun May 10 20:44:43 2020 (r360883) +++ projects/nfs-over-tls/sys/fs/nfsserver/nfs_nfsdkrpc.c Sun May 10 21:37:39 2020 (r360884) @@ -164,7 +164,7 @@ nfssvc_program(struct svc_req *rqst, SVCXPRT *xprt) rqst->rq_args = NULL; newnfs_realign(&nd.nd_mrep, M_WAITOK); nd.nd_md = nd.nd_mrep; - nfsm_set(&nd, rqst->rq_xprt->xp_mbufoffs, false); + nd.nd_dpos = mtod(nd.nd_md, char *); nd.nd_nam = svc_getrpccaller(rqst); nd.nd_nam2 = rqst->rq_addr; nd.nd_mreq = NULL; Modified: projects/nfs-over-tls/sys/fs/nfsserver/nfs_nfsdport.c ============================================================================== --- projects/nfs-over-tls/sys/fs/nfsserver/nfs_nfsdport.c Sun May 10 20:44:43 2020 (r360883) +++ projects/nfs-over-tls/sys/fs/nfsserver/nfs_nfsdport.c Sun May 10 21:37:39 2020 (r360884) @@ -5285,7 +5285,7 @@ nfsrv_writedsdorpc(struct nfsmount *nmp, fhandle_t *fh while (m->m_next != NULL) m = m->m_next; nd->nd_mb = m; - nfsm_set(nd, m->m_len, true); + nfsm_set(nd, m->m_len); NFSD_DEBUG(4, "nfsrv_writedsdorpc: lastmb len=%d\n", m->m_len); /* Do a Getattr for the attributes that change upon writing. */