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)
Sun, Oct 20, 8:28 AM
Unknown Object (File)
Oct 8 2024, 4:22 PM
Unknown Object (File)
Oct 8 2024, 4:22 PM
Unknown Object (File)
Oct 8 2024, 4:22 PM
Unknown Object (File)
Oct 8 2024, 4:00 PM
Unknown Object (File)
Sep 27 2024, 4:41 AM
Unknown Object (File)
Sep 13 2024, 10:20 PM
Unknown Object (File)
Sep 5 2024, 3:59 AM
Subscribers

Details

Summary

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

Reported by: KMSAN

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 38981
Build 35870: arc lint + arc unit

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.