aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext3/xattr.c
diff options
context:
space:
mode:
authorAndrew Morton <akpm@digeo.com>2003-06-17 18:26:29 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2003-06-17 18:26:29 -0700
commit3307fbd1b43b4e748aa85a2c53676a3c172091be (patch)
treec3e97f571bb686cb9e0a5a712bd0a8f4e247114d /fs/ext3/xattr.c
parent0d0d85346679e596edb2522a57f0137bd8e48d5b (diff)
downloadhistory-3307fbd1b43b4e748aa85a2c53676a3c172091be.tar.gz
[PATCH] ext3: move lock_kernel() down into the JBD layer.
This is the start of the ext3 scalability rework. It basically comes in two halves: - ext3 BKL/lock_super removal and scalable inode/block allocators - JBD locking rework. The ext3 scalability work was completed a couple of months ago. The JBD rework has been stable for a couple of weeks now. My gut feeling is that there should be one, maybe two bugs left in it, but no problems have been discovered... Performance-wise, throughput is increased by up to 2x on dual CPU. 10x on 16-way has been measured. Given that current ext3 is able to chew two whole CPUs spinning on locks on a 4-way, that wasn't especially suprising. These patches were prepared by Alex Tomas <bzzz@tmi.comex.ru> and myself. First patch: ext3 lock_kernel() removal. The only reason why ext3 takes lock_kernel() is because it is requires by the JBD API. The patch removes the lock_kernels() from ext3 and pushes them down into JBD itself.
Diffstat (limited to 'fs/ext3/xattr.c')
-rw-r--r--fs/ext3/xattr.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/fs/ext3/xattr.c b/fs/ext3/xattr.c
index cd8cb24a344158..5ca5e3086e0670 100644
--- a/fs/ext3/xattr.c
+++ b/fs/ext3/xattr.c
@@ -849,7 +849,6 @@ ext3_xattr_set(struct inode *inode, int name_index, const char *name,
handle_t *handle;
int error, error2;
- lock_kernel();
handle = ext3_journal_start(inode, EXT3_XATTR_TRANS_BLOCKS);
if (IS_ERR(handle))
error = PTR_ERR(handle);
@@ -857,7 +856,6 @@ ext3_xattr_set(struct inode *inode, int name_index, const char *name,
error = ext3_xattr_set_handle(handle, inode, name_index, name,
value, value_len, flags);
error2 = ext3_journal_stop(handle);
- unlock_kernel();
return error ? error : error2;
}