Messages in this thread Patches in this message | | | From | Andreas Gruenbacher <> | Subject | [PATCH] Extended attribute sharing and debug macro typo in 2.5.64 | Date | Fri, 7 Mar 2003 16:50:48 +0100 |
| |
Hello Andrew,
Tony Dziedzic has found two bugs in the extended attributes code. Patches with explanations are attached. Could you please fold this into one of your next updates?
Thanks, Andreas.
------------------------------------------------------------------------------ Extended attribute sharing on ext2/ext3 not working
The mb_cache_entry_insert function constantly returns an -EBUSY error instead of 0, which causes the xattr cache that is needed by the xattr sharing mechanism on ext2/ext3 to not share anything. This patch fixes the problem. (It is possible that after applying this fix we will hit bugs in code that wasn't used before.)
--- linux-2.5.64.orig/fs/mbcache.c 2003-03-07 16:24:07.000000000 +0100 +++ linux-2.5.64/fs/mbcache.c 2003-03-07 16:24:11.000000000 +0100 @@ -433,6 +433,7 @@ list_add(&ce->e_indexes[n].o_list, &cache->c_indexes_hash[n][bucket]); } + error = 0; out: spin_unlock(&mb_cache_spinlock); return error; Extended attributes debug macro oops
------------------------------------------------------------------------------ Oops in one of the xattr debug statements: The old_bh variable is NULL if an inode that previously had no EA's assigned would share an EA block with another inode. (This was hidden by the xattr sharing bug). --- linux-2.5.64.orig/fs/ext2/xattr.c 2003-03-07 16:23:01.000000000 +0100 +++ linux-2.5.64/fs/ext2/xattr.c 2003-03-07 16:23:14.000000000 +0100 @@ -731,7 +731,7 @@ * The old block will be released after updating * the inode. */ - ea_bdebug(old_bh, "reusing block %ld", + ea_bdebug(new_bh, "reusing block %ld", new_bh->b_blocknr); error = -EDQUOT; --- linux-2.5.64.orig/fs/ext3/xattr.c 2003-03-07 16:22:55.000000000 +0100 +++ linux-2.5.64/fs/ext3/xattr.c 2003-03-07 16:23:21.000000000 +0100 @@ -732,7 +732,7 @@ * The old block will be released after updating * the inode. */ - ea_bdebug(old_bh, "reusing block %ld", + ea_bdebug(new_bh, "reusing block %ld", new_bh->b_blocknr); error = -EDQUOT; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |