2007-06-11 16:53:28

by Valerie Clement

[permalink] [raw]
Subject: [RFC][PATCH 12/12] 48-bit block number for ACL in e2fsprogs

Index: e2fsprogs-1.39-tyt3-v6/lib/ext2fs/ext2_fs.h
===================================================================
--- e2fsprogs-1.39-tyt3-v6.orig/lib/ext2fs/ext2_fs.h 2007-06-11 15:31:48.000000000 +0200
+++ e2fsprogs-1.39-tyt3-v6/lib/ext2fs/ext2_fs.h 2007-06-11 15:39:34.000000000 +0200
@@ -339,7 +339,7 @@ struct ext2_inode {
union {
struct {
__u16 l_i_blocks_hi;
- __u16 i_pad1;
+ __u16 l_i_file_acl_high;
__u16 l_i_uid_high; /* these 2 fields */
__u16 l_i_gid_high; /* were reserved2[0] */
__u32 l_i_reserved2;
@@ -355,7 +355,7 @@ struct ext2_inode {
struct {
__u8 m_i_frag; /* Fragment number */
__u8 m_i_fsize; /* Fragment size */
- __u16 m_pad1;
+ __u16 m_i_file_acl_high;
__u32 m_i_reserved2[2];
} masix2;
} osd2; /* OS dependent 2 */
@@ -395,7 +395,7 @@ struct ext2_inode_large {
union {
struct {
__u16 l_i_blocks_hi;
- __u16 i_pad1;
+ __u16 l_i_file_acl_high;
__u16 l_i_uid_high; /* these 2 fields */
__u16 l_i_gid_high; /* were reserved2[0] */
__u32 l_i_reserved2;
@@ -411,7 +411,7 @@ struct ext2_inode_large {
struct {
__u8 m_i_frag; /* Fragment number */
__u8 m_i_fsize; /* Fragment size */
- __u16 m_pad1;
+ __u16 m_i_file_acl_high;
__u32 m_i_reserved2[2];
} masix2;
} osd2; /* OS dependent 2 */
@@ -430,6 +430,7 @@ struct ext2_inode_large {
#define i_reserved1 osd1.linux1.l_i_reserved1
#define i_frag osd2.linux2.l_i_frag
#define i_fsize osd2.linux2.l_i_fsize
+#define i_file_acl_high osd2.linux2.l_i_file_acl_high
#define i_uid_low i_uid
#define i_gid_low i_gid
#define i_uid_high osd2.linux2.l_i_uid_high
@@ -452,6 +453,7 @@ struct ext2_inode_large {
#define i_reserved1 osd1.masix1.m_i_reserved1
#define i_frag osd2.masix2.m_i_frag
#define i_fsize osd2.masix2.m_i_fsize
+#define i_file_acl_high osd2.masix2.m_i_file_acl_high
#define i_reserved2 osd2.masix2.m_i_reserved2

#endif /* __masix__ */
Index: e2fsprogs-1.39-tyt3-v6/lib/ext2fs/swapfs.c
===================================================================
--- e2fsprogs-1.39-tyt3-v6.orig/lib/ext2fs/swapfs.c 2007-06-11 15:31:48.000000000 +0200
+++ e2fsprogs-1.39-tyt3-v6/lib/ext2fs/swapfs.c 2007-06-11 15:39:34.000000000 +0200
@@ -213,7 +213,8 @@ void ext2fs_swap_inode_full(ext2_filsys
ext2fs_swab32(f->osd1.linux1.l_i_version);
t->osd2.linux2.l_i_blocks_hi =
ext2fs_swab16(f->osd2.linux2.l_i_blocks_hi);
- t->osd2.linux2.i_pad1 = ext2fs_swab16(f->osd2.linux2.i_pad1);
+ t->osd2.linux2.l_i_file_acl_high =
+ ext2fs_swab16(f->osd2.linux2.l_i_file_acl_high);
t->osd2.linux2.l_i_uid_high =
ext2fs_swab16 (f->osd2.linux2.l_i_uid_high);
t->osd2.linux2.l_i_gid_high =
@@ -240,7 +241,8 @@ void ext2fs_swap_inode_full(ext2_filsys
ext2fs_swab32(f->osd1.masix1.m_i_reserved1);
t->osd2.masix2.m_i_frag = f->osd2.masix2.m_i_frag;
t->osd2.masix2.m_i_fsize = f->osd2.masix2.m_i_fsize;
- t->osd2.masix2.m_pad1 = ext2fs_swab16(f->osd2.masix2.m_pad1);
+ t->osd2.masix2.m_i_file_acl_high =
+ ext2fs_swab16(f->osd2.masix2.m_i_file_acl_high);
t->osd2.masix2.m_i_reserved2[0] =
ext2fs_swab32(f->osd2.masix2.m_i_reserved2[0]);
t->osd2.masix2.m_i_reserved2[1] =


Attachments:
12-handle-i_file_acl_high-in-inode (3.12 kB)

2007-06-12 10:17:08

by Andreas Dilger

[permalink] [raw]
Subject: Re: [RFC][PATCH 12/12] 48-bit block number for ACL in e2fsprogs

On Jun 11, 2007 18:54 +0200, Valerie Clement wrote:
> This patch is intended to contain the changes to support 48-bit block
> numbers for ACL. For now, it only contains modifications in the inode
> structure. It has to be completed.

This should go in ASAP, if just to reserve the fields. If we are in
there, it probably makes sense to rename this "i_file_ea" and "i_file_ea_hi"?
And also replace i_dir_acl with i_size_hi?

Cheers, Andreas
--
Andreas Dilger
Principal Software Engineer
Cluster File Systems, Inc.