git: a87c6962affc - main - ufs: restore name cache fast path lookup
Date: Sat, 09 Sep 2023 21:50:57 UTC
The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=a87c6962affc2d1994d8f30806c934eb4cb7af22 commit a87c6962affc2d1994d8f30806c934eb4cb7af22 Author: Mateusz Guzik <mjg@FreeBSD.org> AuthorDate: 2023-09-09 21:48:57 +0000 Commit: Mateusz Guzik <mjg@FreeBSD.org> CommitDate: 2023-09-09 21:48:57 +0000 ufs: restore name cache fast path lookup Found by: dchagin Fixes: f3c81b973897 ("ufs: add missing vop_fplookup ops") --- sys/ufs/ffs/ffs_vnops.c | 6 ++++-- sys/ufs/ufs/ufs_vnops.c | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c index 0dd64f696e0c..2b11a15c46c9 100644 --- a/sys/ufs/ffs/ffs_vnops.c +++ b/sys/ufs/ffs/ffs_vnops.c @@ -135,6 +135,8 @@ static vop_setextattr_t ffs_setextattr; static vop_vptofh_t ffs_vptofh; static vop_vput_pair_t ffs_vput_pair; +vop_fplookup_vexec_t ufs_fplookup_vexec; + /* Global vfs data structures for ufs. */ struct vop_vector ffs_vnodeops1 = { .vop_default = &ufs_vnodeops, @@ -151,7 +153,7 @@ struct vop_vector ffs_vnodeops1 = { .vop_write = ffs_write, .vop_vptofh = ffs_vptofh, .vop_vput_pair = ffs_vput_pair, - .vop_fplookup_vexec = VOP_EAGAIN, + .vop_fplookup_vexec = ufs_fplookup_vexec, .vop_fplookup_symlink = VOP_EAGAIN, }; VFS_VOP_VECTOR_REGISTER(ffs_vnodeops1); @@ -192,7 +194,7 @@ struct vop_vector ffs_vnodeops2 = { .vop_setextattr = ffs_setextattr, .vop_vptofh = ffs_vptofh, .vop_vput_pair = ffs_vput_pair, - .vop_fplookup_vexec = VOP_EAGAIN, + .vop_fplookup_vexec = ufs_fplookup_vexec, .vop_fplookup_symlink = VOP_EAGAIN, }; VFS_VOP_VECTOR_REGISTER(ffs_vnodeops2); diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c index a7d5e8ba96fc..79cca75fc563 100644 --- a/sys/ufs/ufs/ufs_vnops.c +++ b/sys/ufs/ufs/ufs_vnops.c @@ -101,7 +101,7 @@ VFS_SMR_DECLARE; #include <ufs/ffs/ffs_extern.h> static vop_accessx_t ufs_accessx; -static vop_fplookup_vexec_t ufs_fplookup_vexec; +vop_fplookup_vexec_t ufs_fplookup_vexec; static int ufs_chmod(struct vnode *, int, struct ucred *, struct thread *); static int ufs_chown(struct vnode *, uid_t, gid_t, struct ucred *, struct thread *); @@ -475,7 +475,7 @@ ufs_accessx( * VOP_FPLOOKUP_VEXEC routines are subject to special circumstances, see * the comment above cache_fplookup for details. */ -static int +int ufs_fplookup_vexec( struct vop_fplookup_vexec_args /* { struct vnode *a_vp;