Page MenuHomeFreeBSD

ext2fs: add support for e2di_uid_high and e2di_gid_high.
ClosedPublic

Authored by pfg on Jun 25 2017, 4:11 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Oct 4, 3:51 AM
Unknown Object (File)
Aug 18 2025, 12:58 PM
Unknown Object (File)
Aug 15 2025, 10:25 AM
Unknown Object (File)
Aug 8 2025, 12:55 PM
Unknown Object (File)
Aug 7 2025, 9:21 AM
Unknown Object (File)
Aug 4 2025, 9:02 AM
Unknown Object (File)
Jul 28 2025, 5:53 PM
Unknown Object (File)
Jul 25 2025, 10:26 PM
Subscribers

Details

Summary

It is unclear to me exactly when they were introudced: it appears the are
part of ext3 but only officially available when a bigger inode is
supported ... basically when the extended timestamps are there.

Diff Detail

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

Event Timeline

Fix the shifts.
Move the extended inode changes to one unique if block.
Support both RW on ext3.

Update (again) the shifts: e2di_uid and e2di_gid are just uint16_t.

As, I learned linux sources you can use uid/gid high without E2DI_HAS_XTIME(ip) check, because it depends only from mount option on linux side, not from inode size.
So, seems like

ip->i_uid |= (uint32_t)ei->e2di_uid_high << 16;
ip->i_gid |= (uint32_t)ei->e2di_gid_high << 16;

could be moved out from if (E2DI_HAS_XTIME(ip)).

Applying feedback from Fedor.

This revision is now accepted and ready to land.Jun 27 2017, 6:08 AM
This revision was automatically updated to reflect the committed changes.