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)
Sat, Mar 15, 4:04 AM
Unknown Object (File)
Sat, Mar 15, 2:02 AM
Unknown Object (File)
Mon, Feb 24, 3:11 PM
Unknown Object (File)
Feb 5 2025, 7:14 PM
Unknown Object (File)
Jan 18 2025, 10:58 AM
Unknown Object (File)
Jan 5 2025, 4:05 AM
Unknown Object (File)
Dec 6 2024, 5:22 PM
Unknown Object (File)
Dec 4 2024, 2:32 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.