public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: Add extended attributes to ext2/3
@ 2002-10-15 14:40 Andreas Gruenbacher
  2002-10-15 18:29 ` Theodore Ts'o
  0 siblings, 1 reply; 7+ messages in thread
From: Andreas Gruenbacher @ 2002-10-15 14:40 UTC (permalink / raw)
  To: Theodore Ts'o; +Cc: Christoph Hellwig, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 203 bytes --]

Hello,

Here are two fixes as incrementals to the xattr/acl patches:

fix-xattr.diff: The bad_block bug Andreas Dilger has reported
fix-acl.diff: Make change in ext[23]_new_inode() less intrusive.

[-- Attachment #2: fix-acl.diff --]
[-- Type: text/x-diff, Size: 1083 bytes --]

--- linux-2.4.19.old/fs/ext3/ialloc.c	2002-10-15 14:18:59.000000000 +0200
+++ linux-2.4.19.new/fs/ext3/ialloc.c	2002-10-15 14:16:34.000000000 +0200
@@ -510,7 +510,9 @@
 	inode->i_generation = sb->u.ext3_sb.s_next_generation++;
 
 	inode->u.ext3_i.i_state = EXT3_STATE_NEW;
-
+	err = ext3_mark_inode_dirty(handle, inode);
+	if (err) goto fail;
+	
 	unlock_super (sb);
 	if(DQUOT_ALLOC_INODE(inode)) {
 		DQUOT_DROP(inode);
@@ -522,12 +524,6 @@
 		DQUOT_FREE_INODE(inode);
 		goto fail2;
 	}
-	err = ext3_mark_inode_dirty(handle, inode);
-	if (err) {
-		DQUOT_FREE_INODE(inode);
-		goto fail2;
-	}
-
 	ext3_debug ("allocating inode %lu\n", inode->i_ino);
 	return inode;
 
diff -Nur --exclude='*.orig' linux-2.4.19.old/fs/ext2/ialloc.c linux-2.4.19.new/fs/ext2/ialloc.c
--- linux-2.4.19.old/fs/ext2/ialloc.c	2002-10-15 15:32:24.000000000 +0200
+++ linux-2.4.19.new/fs/ext2/ialloc.c	2002-10-15 15:32:16.000000000 +0200
@@ -410,7 +410,6 @@
 		DQUOT_FREE_INODE(inode);
 		goto fail3;
 	}
-	mark_inode_dirty(inode);
 
 	ext2_debug ("allocating inode %lu\n", inode->i_ino);
 	return inode;

[-- Attachment #3: fix-xattr.diff --]
[-- Type: text/x-diff, Size: 1323 bytes --]

--- linux-2.4.19.old/fs/ext2/xattr.c	2002-10-15 13:57:44.000000000 +0200
+++ linux-2.4.19.new/fs/ext2/xattr.c	2002-10-15 13:59:57.000000000 +0200
@@ -587,6 +587,7 @@
 	struct ext2_xattr_header *header = NULL;
 	struct ext2_xattr_entry *here, *last;
 	unsigned int name_len;
+	int block = EXT2_I(inode)->i_file_acl;
 	int min_offs = sb->s_blocksize, not_found = 1, free, error;
 	char *end;
 	
@@ -618,9 +619,8 @@
 		return -ERANGE;
 	ext2_xattr_lock();
 
-	if (EXT2_I(inode)->i_file_acl) {
+	if (block) {
 		/* The inode already has an extended attribute block. */
-		int block = EXT2_I(inode)->i_file_acl;
 
 		bh = sb_bread(sb, block);
 		error = -EIO;
--- linux-2.4.19.old/fs/ext3/xattr.c	2002-10-15 14:24:10.000000000 +0200
+++ linux-2.4.19.new/fs/ext3/xattr.c	2002-10-15 14:24:01.000000000 +0200
@@ -587,6 +587,7 @@
 	struct ext3_xattr_header *header = NULL;
 	struct ext3_xattr_entry *here, *last;
 	unsigned int name_len;
+	int block = EXT3_I(inode)->i_file_acl;
 	int min_offs = sb->s_blocksize, not_found = 1, free, error;
 	char *end;
 	
@@ -618,10 +619,8 @@
 		return -ERANGE;
 	ext3_xattr_lock();
 
-	if (EXT3_I(inode)->i_file_acl) {
+	if (block) {
 		/* The inode already has an extended attribute block. */
-		int block = EXT3_I(inode)->i_file_acl;
-
 		bh = sb_bread(sb, block);
 		error = -EIO;
 		if (!bh)

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2002-10-21 10:26 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-10-15 14:40 Add extended attributes to ext2/3 Andreas Gruenbacher
2002-10-15 18:29 ` Theodore Ts'o
2002-10-15 21:00   ` Andreas Gruenbacher
2002-10-15 22:01     ` Andreas Dilger
2002-10-15 22:09       ` Andreas Gruenbacher
2002-10-15 22:18         ` Andreas Gruenbacher
2002-10-21 10:48       ` Alan Cox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox