Date: Mon, 4 Mar 2019 15:20:21 +0200 From: Konstantin Belousov <kostikbel@gmail.com> To: Edward Tomasz Napierala <trasz@FreeBSD.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r344758 - in head/sys/fs: nfs nfsserver Message-ID: <20190304132021.GN68879@kib.kiev.ua> In-Reply-To: <201903041302.x24D2aG0093620@repo.freebsd.org> References: <201903041302.x24D2aG0093620@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Mar 04, 2019 at 01:02:36PM +0000, Edward Tomasz Napierala wrote: > Author: trasz > Date: Mon Mar 4 13:02:36 2019 > New Revision: 344758 > URL: https://svnweb.freebsd.org/changeset/base/344758 > > Log: > Push down td in nfsrvd_dorpc() - make it use curthread instead > of it being explicitly passed as an argument. No functional changes. > > The big picture here is that I want to get rid of the 'td' argument > being passed everywhere, and this is the first piece that affects > the NFS server. > > Reviewed by: rmacklem > MFC after: 2 weeks > Sponsored by: DARPA, AFRL > Differential Revision: https://reviews.freebsd.org/D19417 > > Modified: > head/sys/fs/nfs/nfs_var.h > head/sys/fs/nfsserver/nfs_nfsdkrpc.c > head/sys/fs/nfsserver/nfs_nfsdsocket.c > > Modified: head/sys/fs/nfs/nfs_var.h > ============================================================================== > --- head/sys/fs/nfs/nfs_var.h Mon Mar 4 11:33:49 2019 (r344757) > +++ head/sys/fs/nfs/nfs_var.h Mon Mar 4 13:02:36 2019 (r344758) > @@ -283,8 +283,7 @@ int nfsrvd_notsupp(struct nfsrv_descript *, int, > > /* nfs_nfsdsocket.c */ > void nfsrvd_rephead(struct nfsrv_descript *); > -void nfsrvd_dorpc(struct nfsrv_descript *, int, u_char *, int, u_int32_t, > - NFSPROC_T *); > +void nfsrvd_dorpc(struct nfsrv_descript *, int, u_char *, int, u_int32_t); > > /* nfs_nfsdcache.c */ > void nfsrvd_initcache(void); > > Modified: head/sys/fs/nfsserver/nfs_nfsdkrpc.c > ============================================================================== > --- head/sys/fs/nfsserver/nfs_nfsdkrpc.c Mon Mar 4 11:33:49 2019 (r344757) > +++ head/sys/fs/nfsserver/nfs_nfsdkrpc.c Mon Mar 4 13:02:36 2019 (r344758) > @@ -323,7 +323,6 @@ static int > nfs_proc(struct nfsrv_descript *nd, u_int32_t xid, SVCXPRT *xprt, > struct nfsrvcache **rpp) > { > - struct thread *td = curthread; > int cacherep = RC_DOIT, isdgram, taglen = -1; > struct mbuf *m; > u_char tag[NFSV4_SMALLSTR + 1], *tagstr = NULL; > @@ -384,7 +383,7 @@ nfs_proc(struct nfsrv_descript *nd, u_int32_t xid, SVC > if (cacherep == RC_DOIT) { > if ((nd->nd_flag & ND_NFSV41) != 0) > nd->nd_xprt = xprt; > - nfsrvd_dorpc(nd, isdgram, tagstr, taglen, minorvers, td); > + nfsrvd_dorpc(nd, isdgram, tagstr, taglen, minorvers); > if ((nd->nd_flag & ND_NFSV41) != 0) { > if (nd->nd_repstat != NFSERR_REPLYFROMCACHE && > (nd->nd_flag & ND_SAVEREPLY) != 0) { > > Modified: head/sys/fs/nfsserver/nfs_nfsdsocket.c > ============================================================================== > --- head/sys/fs/nfsserver/nfs_nfsdsocket.c Mon Mar 4 11:33:49 2019 (r344757) > +++ head/sys/fs/nfsserver/nfs_nfsdsocket.c Mon Mar 4 13:02:36 2019 (r344758) > @@ -367,7 +367,7 @@ int nfsrv_writerpc[NFS_NPROCS] = { 0, 0, 1, 0, 0, 0, 0 > > /* local functions */ > static void nfsrvd_compound(struct nfsrv_descript *nd, int isdgram, > - u_char *tag, int taglen, u_int32_t minorvers, NFSPROC_T *p); > + u_char *tag, int taglen, u_int32_t minorvers); > > > /* > @@ -475,14 +475,17 @@ nfsrvd_statend(int op, uint64_t bytes, struct bintime > */ > APPLESTATIC void > nfsrvd_dorpc(struct nfsrv_descript *nd, int isdgram, u_char *tag, int taglen, > - u_int32_t minorvers, NFSPROC_T *p) > + u_int32_t minorvers) > { > int error = 0, lktype; > vnode_t vp; > mount_t mp = NULL; > struct nfsrvfh fh; > struct nfsexstuff nes; > + struct thread *p; > > + p = curthread; > + > /* > * Get a locked vnode for the first file handle > */ > @@ -557,7 +560,7 @@ nfsrvd_dorpc(struct nfsrv_descript *nd, int isdgram, u > * The group is indicated by the value in nfs_retfh[]. > */ > if (nd->nd_flag & ND_NFSV4) { > - nfsrvd_compound(nd, isdgram, tag, taglen, minorvers, p); > + nfsrvd_compound(nd, isdgram, tag, taglen, minorvers); > } else { > struct bintime start_time; > > @@ -620,7 +623,7 @@ out: > */ > static void > nfsrvd_compound(struct nfsrv_descript *nd, int isdgram, u_char *tag, > - int taglen, u_int32_t minorvers, NFSPROC_T *p) > + int taglen, u_int32_t minorvers) > { > int i, lktype, op, op0 = 0, statsinprog = 0; > u_int32_t *tl; > @@ -635,6 +638,9 @@ nfsrvd_compound(struct nfsrv_descript *nd, int isdgram > fsid_t cur_fsid, save_fsid; > static u_int64_t compref = 0; > struct bintime start_time; > + struct thread *p; > + > + p = curthread; Why do you name it 'p', which is typical for process, and not 'td', you are changing most of the code anyway. Also I am curious why. It is certainly fine to remove td when it is used as a formal placeholder argument only. But when the first action in the function is evaluation of curthread() it becomes less obvious. curthread() become very cheap on modern amd64, I am not so sure about older machines or non-x86 cases. > > NFSVNO_EXINIT(&vpnes); > NFSVNO_EXINIT(&savevpnes);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20190304132021.GN68879>