From: Mingming Cao <cmm@us.ibm.com>
To: akpm@osdl.org
Cc: linux-kernel@vger.kernel.org, ext2-devel@lists.sourceforge.net,
linux-fsdevel@vger.kernel.org
Subject: [PATCH 8/9] 48-bit block numbers for extended attributes
Date: Wed, 09 Aug 2006 18:22:09 -0700 [thread overview]
Message-ID: <1155172929.3161.87.camel@localhost.localdomain> (raw)
As we are planning to support 48-bit block numbers for ext4,
we need to support 48-bit block numbers for extended attributes.
In the short term, we can do this by reuse (on-disk) 16-bit
padding (linux2.i_pad1 currently used only by "hurd") as high
order bits for xattr. This patch basically does that.
Signed-off-by: Badari Pulavarty <pbadari@us.ibm.com>
---
linux-2.6.18-rc4-ming/fs/ext4/inode.c | 8 ++++++++
linux-2.6.18-rc4-ming/include/linux/ext4_fs.h | 6 ++++--
2 files changed, 12 insertions(+), 2 deletions(-)
diff -puN fs/ext4/inode.c~ext4_48bit_i_file_acl fs/ext4/inode.c
--- linux-2.6.18-rc4/fs/ext4/inode.c~ext4_48bit_i_file_acl 2006-08-09 15:42:05.848401839 -0700
+++ linux-2.6.18-rc4-ming/fs/ext4/inode.c 2006-08-09 15:42:05.858401920 -0700
@@ -2641,6 +2641,10 @@ void ext4_read_inode(struct inode * inod
ei->i_frag_size = raw_inode->i_fsize;
#endif
ei->i_file_acl = le32_to_cpu(raw_inode->i_file_acl);
+ if ((sizeof(sector_t) > 4) &&
+ (EXT4_SB(inode->i_sb)->s_es->s_creator_os != EXT4_OS_HURD))
+ ei->i_file_acl |=
+ ((__u64)le16_to_cpu(raw_inode->i_file_acl_high)) << 32;
if (!S_ISREG(inode->i_mode)) {
ei->i_dir_acl = le32_to_cpu(raw_inode->i_dir_acl);
} else {
@@ -2774,6 +2778,10 @@ static int ext4_do_update_inode(handle_t
raw_inode->i_frag = ei->i_frag_no;
raw_inode->i_fsize = ei->i_frag_size;
#endif
+ if ((sizeof(sector_t) > 4) &&
+ (EXT4_SB(inode->i_sb)->s_es->s_creator_os != EXT4_OS_HURD))
+ raw_inode->i_file_acl_high =
+ cpu_to_le16((__u64)ei->i_file_acl >> 32);
raw_inode->i_file_acl = cpu_to_le32(ei->i_file_acl);
if (!S_ISREG(inode->i_mode)) {
raw_inode->i_dir_acl = cpu_to_le32(ei->i_dir_acl);
diff -puN include/linux/ext4_fs.h~ext4_48bit_i_file_acl include/linux/ext4_fs.h
--- linux-2.6.18-rc4/include/linux/ext4_fs.h~ext4_48bit_i_file_acl 2006-08-09 15:42:05.851401864 -0700
+++ linux-2.6.18-rc4-ming/include/linux/ext4_fs.h 2006-08-09 15:42:05.860401937 -0700
@@ -285,7 +285,7 @@ struct ext4_inode {
struct {
__u8 l_i_frag; /* Fragment number */
__u8 l_i_fsize; /* Fragment size */
- __u16 i_pad1;
+ __u16 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;
@@ -301,7 +301,7 @@ struct ext4_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 */
@@ -315,6 +315,7 @@ struct ext4_inode {
#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
@@ -335,6 +336,7 @@ struct ext4_inode {
#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 /* defined(__KERNEL__) || defined(__linux__) */
_
WARNING: multiple messages have this Message-ID (diff)
From: Mingming Cao <cmm@us.ibm.com>
To: akpm@osdl.org
Cc: linux-fsdevel@vger.kernel.org, ext2-devel@lists.sourceforge.net,
linux-kernel@vger.kernel.org
Subject: [PATCH 8/9] 48-bit block numbers for extended attributes
Date: Wed, 09 Aug 2006 18:22:09 -0700 [thread overview]
Message-ID: <1155172929.3161.87.camel@localhost.localdomain> (raw)
As we are planning to support 48-bit block numbers for ext4,
we need to support 48-bit block numbers for extended attributes.
In the short term, we can do this by reuse (on-disk) 16-bit
padding (linux2.i_pad1 currently used only by "hurd") as high
order bits for xattr. This patch basically does that.
Signed-off-by: Badari Pulavarty <pbadari@us.ibm.com>
---
linux-2.6.18-rc4-ming/fs/ext4/inode.c | 8 ++++++++
linux-2.6.18-rc4-ming/include/linux/ext4_fs.h | 6 ++++--
2 files changed, 12 insertions(+), 2 deletions(-)
diff -puN fs/ext4/inode.c~ext4_48bit_i_file_acl fs/ext4/inode.c
--- linux-2.6.18-rc4/fs/ext4/inode.c~ext4_48bit_i_file_acl 2006-08-09 15:42:05.848401839 -0700
+++ linux-2.6.18-rc4-ming/fs/ext4/inode.c 2006-08-09 15:42:05.858401920 -0700
@@ -2641,6 +2641,10 @@ void ext4_read_inode(struct inode * inod
ei->i_frag_size = raw_inode->i_fsize;
#endif
ei->i_file_acl = le32_to_cpu(raw_inode->i_file_acl);
+ if ((sizeof(sector_t) > 4) &&
+ (EXT4_SB(inode->i_sb)->s_es->s_creator_os != EXT4_OS_HURD))
+ ei->i_file_acl |=
+ ((__u64)le16_to_cpu(raw_inode->i_file_acl_high)) << 32;
if (!S_ISREG(inode->i_mode)) {
ei->i_dir_acl = le32_to_cpu(raw_inode->i_dir_acl);
} else {
@@ -2774,6 +2778,10 @@ static int ext4_do_update_inode(handle_t
raw_inode->i_frag = ei->i_frag_no;
raw_inode->i_fsize = ei->i_frag_size;
#endif
+ if ((sizeof(sector_t) > 4) &&
+ (EXT4_SB(inode->i_sb)->s_es->s_creator_os != EXT4_OS_HURD))
+ raw_inode->i_file_acl_high =
+ cpu_to_le16((__u64)ei->i_file_acl >> 32);
raw_inode->i_file_acl = cpu_to_le32(ei->i_file_acl);
if (!S_ISREG(inode->i_mode)) {
raw_inode->i_dir_acl = cpu_to_le32(ei->i_dir_acl);
diff -puN include/linux/ext4_fs.h~ext4_48bit_i_file_acl include/linux/ext4_fs.h
--- linux-2.6.18-rc4/include/linux/ext4_fs.h~ext4_48bit_i_file_acl 2006-08-09 15:42:05.851401864 -0700
+++ linux-2.6.18-rc4-ming/include/linux/ext4_fs.h 2006-08-09 15:42:05.860401937 -0700
@@ -285,7 +285,7 @@ struct ext4_inode {
struct {
__u8 l_i_frag; /* Fragment number */
__u8 l_i_fsize; /* Fragment size */
- __u16 i_pad1;
+ __u16 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;
@@ -301,7 +301,7 @@ struct ext4_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 */
@@ -315,6 +315,7 @@ struct ext4_inode {
#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
@@ -335,6 +336,7 @@ struct ext4_inode {
#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 /* defined(__KERNEL__) || defined(__linux__) */
_
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
next reply other threads:[~2006-08-10 1:22 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-10 1:22 Mingming Cao [this message]
2006-08-10 1:22 ` [PATCH 8/9] 48-bit block numbers for extended attributes Mingming Cao
2006-08-10 6:41 ` Andrew Morton
2006-08-10 6:41 ` Andrew Morton
2006-08-10 17:27 ` Mingming Cao
2006-08-10 17:27 ` Mingming Cao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1155172929.3161.87.camel@localhost.localdomain \
--to=cmm@us.ibm.com \
--cc=akpm@osdl.org \
--cc=ext2-devel@lists.sourceforge.net \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.