Make inode extra time fields updating logic more closer to linux.
Details
Found using pjdfstest:
pjdfstest/tests/utimensat/09.t
Testcase passed successfully.
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Skipped - Unit
Tests Skipped
Event Timeline
Do not touch inode.h.
You can use inline functions to replace the macros and perhaps with some casting you can get over the issues.
sys/fs/ext2fs/inode.h | ||
---|---|---|
103 | These changes are wrong. Long discussion with bde@ showed we should not diverge from UFS here and the kernel won't handle anything different different than int32_t. |
sys/fs/ext2fs/inode.h | ||
---|---|---|
103 | I think we not diverge from ufs so mach, you can check struct ufs2_dinode and ufs_time_t typedef, where ufs_time_t is int64_t. |
While the ext_time_t approach is valid and it also consistent with UFS2, it is usually faster to use 32bit values so you *could* use casts. Either way is valid so I won't object.
sys/fs/ext2fs/ext2_inode_cnv.c | ||
---|---|---|
97 | You are replacing a macro so use inline here | |
106 | use inline here, and move it nearer to the place where it will be used.: basically where the macro was. | |
sys/fs/ext2fs/inode.h | ||
103 | I see: I was looking at ufs1_dinode while you are using ufs2_dinode. |