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, Sep 5, 7:29 AM
Unknown Object (File)
Sat, Sep 5, 4:43 AM
Unknown Object (File)
Fri, Sep 4, 4:54 PM
Unknown Object (File)
Fri, Sep 4, 12:27 AM
Unknown Object (File)
Thu, Sep 3, 5:53 PM
Unknown Object (File)
Thu, Sep 3, 4:46 AM
Unknown Object (File)
Tue, Sep 1, 6:17 PM
Unknown Object (File)
Tue, Sep 1, 3:52 PM
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.