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
F176422222: D11354.id30069.diff
Sun, Oct 18, 7:28 PM
F176422214: D11354.id30058.diff
Sun, Oct 18, 7:27 PM
F176422213: D11354.id30093.diff
Sun, Oct 18, 7:27 PM
F176422210: D11354.id30068.diff
Sun, Oct 18, 7:27 PM
F176415509: D11354.diff
Sun, Oct 18, 6:21 PM
Unknown Object (File)
Wed, Oct 14, 12:14 PM
Unknown Object (File)
Wed, Oct 14, 8:52 AM
Unknown Object (File)
Tue, Oct 13, 5:34 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 10124
Build 10547: 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.