Date: Sat, 1 Aug 2020 06:33:38 +0000 (UTC) From: Mateusz Guzik <mjg@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r363754 - in head/sys: kern sys Message-ID: <202008010633.0716XctF041675@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mjg Date: Sat Aug 1 06:33:38 2020 New Revision: 363754 URL: https://svnweb.freebsd.org/changeset/base/363754 Log: vfs: inline NDINIT_ALL The routine takes more than 6 arguments, which on amd64 means some of them have to be passed through the stack. Modified: head/sys/kern/vfs_lookup.c head/sys/sys/namei.h Modified: head/sys/kern/vfs_lookup.c ============================================================================== --- head/sys/kern/vfs_lookup.c Sat Aug 1 06:33:11 2020 (r363753) +++ head/sys/kern/vfs_lookup.c Sat Aug 1 06:33:38 2020 (r363754) @@ -1365,25 +1365,6 @@ bad: return (error); } -void -NDINIT_ALL(struct nameidata *ndp, u_long op, u_long flags, enum uio_seg segflg, - const char *namep, int dirfd, struct vnode *startdir, cap_rights_t *rightsp, - struct thread *td) -{ - - MPASS(rightsp != NULL); - ndp->ni_cnd.cn_nameiop = op; - ndp->ni_cnd.cn_flags = flags; - ndp->ni_segflg = segflg; - ndp->ni_dirp = namep; - ndp->ni_dirfd = dirfd; - ndp->ni_startdir = startdir; - ndp->ni_resflags = 0; - filecaps_init(&ndp->ni_filecaps); - ndp->ni_cnd.cn_thread = td; - ndp->ni_rightsneeded = rightsp; -} - /* * Free data allocated by namei(); see namei(9) for details. */ Modified: head/sys/sys/namei.h ============================================================================== --- head/sys/sys/namei.h Sat Aug 1 06:33:11 2020 (r363753) +++ head/sys/sys/namei.h Sat Aug 1 06:33:38 2020 (r363754) @@ -196,9 +196,22 @@ int cache_fplookup(struct nameidata *ndp, enum cache_f #define NDINIT_ATVP(ndp, op, flags, segflg, namep, vp, td) \ NDINIT_ALL(ndp, op, flags, segflg, namep, AT_FDCWD, vp, &cap_no_rights, td) -void NDINIT_ALL(struct nameidata *ndp, u_long op, u_long flags, - enum uio_seg segflg, const char *namep, int dirfd, struct vnode *startdir, - cap_rights_t *rightsp, struct thread *td); +#define NDINIT_ALL(ndp, op, flags, segflg, namep, dirfd, startdir, rightsp, td) \ +do { \ + struct nameidata *_ndp = (ndp); \ + cap_rights_t *_rightsp = (rightsp); \ + MPASS(_rightsp != NULL); \ + _ndp->ni_cnd.cn_nameiop = op; \ + _ndp->ni_cnd.cn_flags = flags; \ + _ndp->ni_segflg = segflg; \ + _ndp->ni_dirp = namep; \ + _ndp->ni_dirfd = dirfd; \ + _ndp->ni_startdir = startdir; \ + _ndp->ni_resflags = 0; \ + filecaps_init(&_ndp->ni_filecaps); \ + _ndp->ni_cnd.cn_thread = td; \ + _ndp->ni_rightsneeded = _rightsp; \ +} while (0) #define NDF_NO_DVP_RELE 0x00000001 #define NDF_NO_DVP_UNLOCK 0x00000002
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202008010633.0716XctF041675>