projects/linux·commit 105fd108

[PATCH] "ext[34]: EA block reference count racing fix" performance fix

105fd108 · Andrew Morton <[email protected]> · 2007-03-23 00:10:02 -07:00

A little mistake in 8a2bfdcbfa441d8b0e5cb9c9a7f45f77f80da465 is making all
transactions synchronous, which reduces ext3 performance to comical levels.

Cc: Mingming Cao <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Commit
105fd108a66ceff2b0fb710582b97d61ee4c9d40
Parents
cee9e8c5

Changes

1 files changed · +2 −1

FileStatusAddDelContent
fs/ext3/xattr.cmodified+2−1View file

fs/ext3/xattr.c

View file
diff --git a/fs/ext3/xattr.c b/fs/ext3/xattr.c
index 12f7dda..f58cbb2 100644
--- a/fs/ext3/xattr.c
+++ b/fs/ext3/xattr.c
@@ -495,7 +495,8 @@ ext3_xattr_release_block(handle_t *handle, struct inode *inode,
BHDR(bh)->h_refcount = cpu_to_le32(
le32_to_cpu(BHDR(bh)->h_refcount) - 1);
error = ext3_journal_dirty_metadata(handle, bh);
- handle->h_sync = 1;
+ if (IS_SYNC(inode))
+ handle->h_sync = 1;
DQUOT_FREE_BLOCK(inode, 1);
ea_bdebug(bh, "refcount now=%d; releasing",
le32_to_cpu(BHDR(bh)->h_refcount));