2007-10-11 09:01:40

by Aneesh Kumar K.V

[permalink] [raw]
Subject: 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


2007-10-11 09:19:50

by Andreas Dilger

[permalink] [raw]
Subject: Re: ext4_inode difference between e2fsprogs and ext4

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.