Re: git: a87c6962affc - main - ufs: restore name cache fast path lookup

From: Dmitry Chagin <dchagin_at_freebsd.org>
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;