ext3_xattr_delete_inode is called from ext3_free_inode which always has exclusive access to the inode, so there is no need to take the xattr semaphore. Signed-off-by: Andreas Gruenbacher Index: linux-2.6.11-latest/fs/ext3/xattr.c =================================================================== --- linux-2.6.11-latest.orig/fs/ext3/xattr.c +++ linux-2.6.11-latest/fs/ext3/xattr.c @@ -1066,7 +1066,6 @@ ext3_xattr_delete_inode(handle_t *handle { struct buffer_head *bh = NULL; - down_write(&EXT3_I(inode)->xattr_sem); if (!EXT3_I(inode)->i_file_acl) goto cleanup; bh = sb_bread(inode->i_sb, EXT3_I(inode)->i_file_acl); @@ -1088,7 +1087,6 @@ ext3_xattr_delete_inode(handle_t *handle cleanup: brelse(bh); - up_write(&EXT3_I(inode)->xattr_sem); } /* -- Andreas Gruenbacher SUSE Labs, SUSE LINUX PRODUCTS GMBH