%patch
-Index: linux-2.6.0/fs/ext3/ialloc.c
+Index: linux-2.6.7/fs/ext3/ialloc.c
===================================================================
---- linux-2.6.0.orig/fs/ext3/ialloc.c 2004-01-14 18:54:11.000000000 +0300
-+++ linux-2.6.0/fs/ext3/ialloc.c 2004-01-14 18:54:12.000000000 +0300
-@@ -627,6 +627,11 @@
- inode->i_generation = EXT3_SB(sb)->s_next_generation++;
+--- linux-2.6.7.orig/fs/ext3/ialloc.c 2004-09-06 20:01:18.000000000 +0800
++++ linux-2.6.7/fs/ext3/ialloc.c 2004-09-06 20:04:42.000000000 +0800
+@@ -629,6 +629,11 @@
+ spin_unlock(&sbi->s_next_gen_lock);
ei->i_state = EXT3_STATE_NEW;
+ if (EXT3_INODE_SIZE(inode->i_sb) > EXT3_GOOD_OLD_INODE_SIZE) {
ret = inode;
if(DQUOT_ALLOC_INODE(inode)) {
-Index: linux-2.6.0/fs/ext3/inode.c
+Index: linux-2.6.7/fs/ext3/inode.c
===================================================================
---- linux-2.6.0.orig/fs/ext3/inode.c 2004-01-14 18:54:12.000000000 +0300
-+++ linux-2.6.0/fs/ext3/inode.c 2004-01-14 19:09:46.000000000 +0300
-@@ -2339,7 +2339,7 @@
+--- linux-2.6.7.orig/fs/ext3/inode.c 2004-09-06 20:01:20.000000000 +0800
++++ linux-2.6.7/fs/ext3/inode.c 2004-09-06 20:04:42.000000000 +0800
+@@ -2349,7 +2349,7 @@
* trying to determine the inode's location on-disk and no read need be
* performed.
*/
struct ext3_iloc *iloc, int in_mem)
{
unsigned long block;
-@@ -2547,6 +2547,11 @@
+@@ -2558,6 +2558,11 @@
ei->i_data[block] = raw_inode->i_block[block];
INIT_LIST_HEAD(&ei->i_orphan);
if (S_ISREG(inode->i_mode)) {
inode->i_op = &ext3_file_inode_operations;
inode->i_fop = &ext3_file_operations;
-@@ -2682,6 +2687,9 @@
+@@ -2693,6 +2698,9 @@
} else for (block = 0; block < EXT3_N_BLOCKS; block++)
raw_inode->i_block[block] = ei->i_data[block];
BUFFER_TRACE(bh, "call ext3_journal_dirty_metadata");
rc = ext3_journal_dirty_metadata(handle, bh);
if (!err)
-Index: linux-2.6.0/fs/ext3/xattr.c
+Index: linux-2.6.7/fs/ext3/xattr.c
===================================================================
---- linux-2.6.0.orig/fs/ext3/xattr.c 2003-12-30 08:33:13.000000000 +0300
-+++ linux-2.6.0/fs/ext3/xattr.c 2004-01-14 18:54:12.000000000 +0300
+--- linux-2.6.7.orig/fs/ext3/xattr.c 2004-06-16 13:19:36.000000000 +0800
++++ linux-2.6.7/fs/ext3/xattr.c 2004-09-06 20:05:40.000000000 +0800
@@ -246,17 +246,12 @@
}
+ if (EXT3_SB(inode->i_sb)->s_inode_size <= EXT3_GOOD_OLD_INODE_SIZE)
+ return -ENOENT;
+
-+ ret = ext3_get_inode_loc(inode, &iloc);
++ ret = ext3_get_inode_loc(inode, &iloc, 1);
+ if (ret)
+ return ret;
+ raw_inode = ext3_raw_inode(&iloc);
+ if (EXT3_SB(inode->i_sb)->s_inode_size <= EXT3_GOOD_OLD_INODE_SIZE)
+ return 0;
+
-+ ret = ext3_get_inode_loc(inode, &iloc);
++ ret = ext3_get_inode_loc(inode, &iloc, 1);
+ if (ret)
+ return ret;
+ raw_inode = ext3_raw_inode(&iloc);
+ if (EXT3_SB(inode->i_sb)->s_inode_size <= EXT3_GOOD_OLD_INODE_SIZE)
+ return ret;
+
-+ err = ext3_get_inode_loc(inode, &iloc);
++ err = ext3_get_inode_loc(inode, &iloc, 1);
+ if (err)
+ return -EIO;
+ raw_inode = ext3_raw_inode(&iloc);
+ if (EXT3_SB(inode->i_sb)->s_inode_size <= EXT3_GOOD_OLD_INODE_SIZE)
+ return -ENOSPC;
+
-+ err = ext3_get_inode_loc(inode, &iloc);
++ err = ext3_get_inode_loc(inode, &iloc, 1);
+ if (err)
+ return err;
+ raw_inode = ext3_raw_inode(&iloc);
const char *name, const void *value, size_t value_len,
int flags)
{
-@@ -492,22 +1078,7 @@
+@@ -492,22 +1079,7 @@
* towards the end of the block).
* end -- Points right after the block pointed to by header.
*/
if (EXT3_I(inode)->i_file_acl) {
/* The inode already has an extended attribute block. */
bh = sb_bread(sb, EXT3_I(inode)->i_file_acl);
-@@ -733,7 +1304,6 @@
+@@ -733,7 +1305,6 @@
brelse(bh);
if (!(bh && header == HDR(bh)))
kfree(header);
return error;
}
-Index: linux-2.6.0/fs/ext3/xattr.h
+Index: linux-2.6.7/fs/ext3/xattr.h
===================================================================
---- linux-2.6.0.orig/fs/ext3/xattr.h 2003-06-24 18:04:43.000000000 +0400
-+++ linux-2.6.0/fs/ext3/xattr.h 2004-01-14 18:54:12.000000000 +0300
+--- linux-2.6.7.orig/fs/ext3/xattr.h 2004-06-16 13:20:04.000000000 +0800
++++ linux-2.6.7/fs/ext3/xattr.h 2004-09-06 20:04:42.000000000 +0800
@@ -77,7 +77,8 @@
extern int ext3_xattr_get(struct inode *, int, const char *, void *, size_t);
extern int ext3_xattr_list(struct inode *, char *, size_t);
extern void ext3_xattr_delete_inode(handle_t *, struct inode *);
extern void ext3_xattr_put_super(struct super_block *);
-Index: linux-2.6.0/include/linux/ext3_fs.h
+Index: linux-2.6.7/include/linux/ext3_fs.h
===================================================================
---- linux-2.6.0.orig/include/linux/ext3_fs.h 2004-01-14 18:54:11.000000000 +0300
-+++ linux-2.6.0/include/linux/ext3_fs.h 2004-01-14 18:54:12.000000000 +0300
+--- linux-2.6.7.orig/include/linux/ext3_fs.h 2004-09-06 20:01:19.000000000 +0800
++++ linux-2.6.7/include/linux/ext3_fs.h 2004-09-06 20:04:42.000000000 +0800
@@ -265,6 +265,8 @@
__u32 m_i_reserved2[2];
} masix2;
};
#define i_size_high i_dir_acl
-Index: linux-2.6.0/include/linux/ext3_fs_i.h
+@@ -725,6 +727,7 @@
+ extern struct buffer_head * ext3_getblk (handle_t *, struct inode *, long, int, int *);
+ extern struct buffer_head * ext3_bread (handle_t *, struct inode *, int, int, int *);
+
++extern int ext3_get_inode_loc(struct inode *, struct ext3_iloc *, int);
+ extern void ext3_read_inode (struct inode *);
+ extern void ext3_write_inode (struct inode *, int);
+ extern int ext3_setattr (struct dentry *, struct iattr *);
+Index: linux-2.6.7/include/linux/ext3_fs_i.h
===================================================================
---- linux-2.6.0.orig/include/linux/ext3_fs_i.h 2003-12-30 08:32:44.000000000 +0300
-+++ linux-2.6.0/include/linux/ext3_fs_i.h 2004-01-14 18:54:12.000000000 +0300
+--- linux-2.6.7.orig/include/linux/ext3_fs_i.h 2004-06-16 13:18:52.000000000 +0800
++++ linux-2.6.7/include/linux/ext3_fs_i.h 2004-09-06 20:04:42.000000000 +0800
@@ -96,6 +96,9 @@
*/
loff_t i_disksize;
%diffstat
fs/ext3/ialloc.c | 5
fs/ext3/inode.c | 10
- fs/ext3/xattr.c | 634 +++++++++++++++++++++++++++++++++++++++++++---
+ fs/ext3/xattr.c | 635 +++++++++++++++++++++++++++++++++++++++++++---
fs/ext3/xattr.h | 3
- include/linux/ext3_fs.h | 2
+ include/linux/ext3_fs.h | 3
include/linux/ext3_fs_i.h | 3
- 6 files changed, 623 insertions(+), 34 deletions(-)
+ 6 files changed, 625 insertions(+), 34 deletions(-)