ext4_inode difference between e2fsprogs and ext4
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
Quoted 13 lines · Aneesh Kumar K.V
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;
Quoted 2 lines
Last week we were discussing about taking that
l_i_reserved1and using that for makingfile_acl64 bit and using the lowerl_i_reserved2for 64 bitdir_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.
Quoted 1 line
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.