in e2fsprogs we have
union {
struct {
__u16 l_i_blocks_hi;
__u16 i_pad1;
__u16 l_i_uid_high; /* these 2 fields */
__u16 l_i_gid_high; /* were reserved2[0] */
__u32 l_i_reserved2;
} linux2;
In ext4 we have
union {
struct {
__le16 l_i_reserved1; /* Obsoleted fragment number/size which are removed in ext4 */
__le16 l_i_file_acl_high;
__le16 l_i_uid_high; /* these 2 fields */
__le16 l_i_gid_high; /* were reserved2[0] */
__u32 l_i_reserved2;
} linux2;
Last week we were discussing about taking that l_i_reserved1 and using that for making file_acl 64 bit and using the
lower l_i_reserved2 for 64 bit dir_acl.
Now where will i put l_i_blocks_hi ?
-aneesh
On Oct 11, 2007 14:30 +0530, Aneesh Kumar K.V wrote:
> In ext4 we have
>
> union {
> struct {
> __le16 l_i_reserved1; /* Obsoleted fragment
> number/size which are removed in ext4 */
> __le16 l_i_file_acl_high;
> __le16 l_i_uid_high; /* these 2 fields */
> __le16 l_i_gid_high; /* were reserved2[0] */
> __u32 l_i_reserved2;
> } linux2;
>
>
> Last week we were discussing about taking that l_i_reserved1 and using that
> for making file_acl 64 bit and using the lower l_i_reserved2 for 64 bit dir_acl.
We have l_i_file_acl_high already to give us 48-bit i_file_acl, which is
sufficient, IMHO. There is no need to have a larger i_dir_acl since this
field is only really used for i_size_high and should be renamed as such
instead of just being a macro.
> Now where will i put l_i_blocks_hi ?
Just where it is now - in l_i_reserved1...
Cheers, Andreas
--
Andreas Dilger
Principal Software Engineer
Cluster File Systems, Inc.