Page MenuHomeFreeBSD

VOP_STAT: Provide a default value for va_gen
ClosedPublic

Authored by markj on May 3 2021, 1:33 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Apr 16, 1:28 PM
Unknown Object (File)
Wed, Apr 8, 1:51 AM
Unknown Object (File)
Tue, Apr 7, 9:18 AM
Unknown Object (File)
Mon, Apr 6, 9:45 AM
Unknown Object (File)
Fri, Apr 3, 7:06 AM
Unknown Object (File)
Thu, Apr 2, 11:40 PM
Unknown Object (File)
Mar 25 2026, 5:03 PM
Unknown Object (File)
Mar 5 2026, 5:22 AM
Subscribers

Details

Summary

Some filesystems, e.g., pseudofs and the NFSv3 client, do not provide
one.

Reported by: KMSAN

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

markj requested review of this revision.May 3 2021, 1:33 PM
sys/kern/vfs_default.c
1503

I believe that it is better to initialize the field with VNOVAL AKA -1.

For instance, UFS *set*attr compares va_gen with VNOVAL.

sys/kern/vfs_default.c
1503

I note that quite a few filesystems individually initialize va_gen as 0 in their getattr implementations. Should they be left alone?

kib added inline comments.
sys/kern/vfs_default.c
1503

Hm, UFS interprets 0 as not having i_gen initialized, not VNOVAL. See ffs_vfsops.c:ffs_vgetf().

So now I think that my suggestion is wrong, and VNOVAL is the valid value for va_gen e.g. from UFS.

This revision is now accepted and ready to land.May 3 2021, 3:14 PM
This revision was automatically updated to reflect the committed changes.