mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-22 15:47:37 +00:00
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.
This commit is contained in:
parent
14576629bb
commit
85cf316172
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=363754
@ -1365,25 +1365,6 @@ relookup(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp)
|
||||
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.
|
||||
*/
|
||||
|
@ -196,9 +196,22 @@ int cache_fplookup(struct nameidata *ndp, enum cache_fpl_status *status,
|
||||
#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
|
||||
|
Loading…
Reference in New Issue
Block a user