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

From: Renato Botelho <garga_at_FreeBSD.org>
Date: Thu, 02 Oct 2025 12:15:05 UTC
On 01/10/25 16:01, Mateusz Guzik wrote:
> 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.
I'm working on open-vm-* upgrade to 13.0.5 and will get it fixed, just 
sent a FYI because there could be more broken ports around.
-- 
Renato Botelho