Re: git: a87c6962affc - main - ufs: restore name cache fast path lookup
- In reply to: Mateusz Guzik : "git: a87c6962affc - main - ufs: restore name cache fast path lookup"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 11 Sep 2023 18:51:59 UTC
On Sat, Sep 09, 2023 at 09:50:57PM +0000, Mateusz Guzik wrote: > 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 > 10x, do you plan to merge this to the stable/14 releng/14.0? I just cherry-picked this to my stable/14 prod, so compile and runtime tested > 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;