Page MenuHomeFreeBSD

dirent is now 8-byte aligned after ino64.
AcceptedPublic

Authored by bdrewery on Jun 21 2018, 10:22 PM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 2 2024, 12:07 PM
Unknown Object (File)
Dec 20 2023, 8:18 AM
Unknown Object (File)
Jul 3 2023, 1:53 AM
Unknown Object (File)
Jun 22 2023, 1:51 AM
Unknown Object (File)
Jun 15 2023, 7:00 PM
Unknown Object (File)
Jun 3 2023, 1:50 AM
Unknown Object (File)
May 10 2023, 2:30 PM
Unknown Object (File)
May 3 2023, 2:44 PM
Subscribers
None

Details

Reviewers
kib
jhb

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 17526
Build 17349: arc lint + arc unit

Event Timeline

This is fine.

Since you are changing the line, I believe two additional bugs should be fixed. long is the wrong type to use, uintptr_t is correct. Also please do the explicit comparision with 0, since the result of and is not boolean:

if (((uintptr_t)dp & 0x7) != 0)
   break;

address findings and add a comment as it is otherwise somewhat obscure.

As I said I believe it is fine functionally.

One note I have about it is that the change makes libc incompatible with pre-ino64 kernel. IMO this is fine, but note that other people do not agree. In particular, I think that imp' forward-compat shims for the ino64-changed syscalls are now less useful.

If you consider this important enough, you can do something like this:

	... & (__getosreldate() >= INO64_FIRST ? 0x7 : 0x3)) != 0)
This revision is now accepted and ready to land.Jun 22 2018, 8:56 AM