Re: git: 08f06aa1b4fb - main - vfs: retire the VCALL macro

From: Mateusz Guzik <mjguzik_at_gmail.com>
Date: Wed, 01 Oct 2025 19:01:57 UTC
On Wed, Oct 1, 2025 at 8:35 PM Renato Botelho <garga@freebsd.org> wrote:
>
> On 27/09/25 01:01, Mateusz Guzik wrote:
> > The branch main has been updated by mjg:
> >
> > URL: https://cgit.FreeBSD.org/src/commit/?id=08f06aa1b4fb6db0d8beb3e1c328b1c1adbec13a
> >
> > commit 08f06aa1b4fb6db0d8beb3e1c328b1c1adbec13a
> > Author:     Mateusz Guzik <mjg@FreeBSD.org>
> > AuthorDate: 2025-09-27 02:01:32 +0000
> > Commit:     Mateusz Guzik <mjg@FreeBSD.org>
> > CommitDate: 2025-09-27 04:00:59 +0000
> >
> >      vfs: retire the VCALL macro
> >
> >      There is precisely one place using it and even that should probably go
> >      away.
> > ---
> >   sys/fs/nullfs/null_vnops.c | 2 +-
> >   sys/sys/vnode.h            | 5 -----
> >   2 files changed, 1 insertion(+), 6 deletions(-)
> >
> > diff --git a/sys/fs/nullfs/null_vnops.c b/sys/fs/nullfs/null_vnops.c
> > index 74c1a8f3acb6..ba29b0485326 100644
> > --- a/sys/fs/nullfs/null_vnops.c
> > +++ b/sys/fs/nullfs/null_vnops.c
> > @@ -306,7 +306,7 @@ null_bypass(struct vop_generic_args *ap)
> >        * with the modified argument structure.
> >        */
> >       if (vps_p[0] != NULL && *vps_p[0] != NULL) {
> > -             error = VCALL(ap);
> > +             error = ap->a_desc->vdesc_call(ap);
> >       } else {
> >               printf("null_bypass: no map for %s\n", descp->vdesc_name);
> >               error = EINVAL;
> > diff --git a/sys/sys/vnode.h b/sys/sys/vnode.h
> > index 6ef9bbec9446..fcfb8716fc52 100644
> > --- a/sys/sys/vnode.h
> > +++ b/sys/sys/vnode.h
> > @@ -594,11 +594,6 @@ void     assert_vop_unlocked(struct vnode *vp, const char *str);
> >
> >   #endif /* INVARIANTS */
> >
> > -/*
> > - * This call works for vnodes in the kernel.
> > - */
> > -#define VCALL(c) ((c)->a_desc->vdesc_call(c))
> > -
> >   #define DOINGASYNC(vp)                                              \
> >       (((vp)->v_mount->mnt_kern_flag & MNTK_ASYNC) != 0 &&    \
> >        ((curthread->td_pflags & TDP_SYNCIO) == 0))
> >
> >
>
> FYI, this commit along with retirement of NULLVP and VREF broke
> open-vm-kmod build on current.  I wonder if there are move ports that
> could be affected.
>

I could bump __freebsd_version for it, but what you can do is simply
not use the old stuff on any supported branch.