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
F175546396: D11354.id30058.diff
Sun, Oct 11, 3:07 PM
F175544960: D11354.id30066.diff
Sun, Oct 11, 2:57 PM
F175544959: D11354.id30069.diff
Sun, Oct 11, 2:56 PM
F175544956: D11354.id30068.diff
Sun, Oct 11, 2:56 PM
F175544953: D11354.id30134.diff
Sun, Oct 11, 2:56 PM
F175544952: D11354.id30093.diff
Sun, Oct 11, 2:56 PM
F175543788: D11354.diff
Sun, Oct 11, 2:49 PM
Unknown Object (File)
Fri, Sep 25, 12:17 AM
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 10136
Build 10559: 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.