diff options
author | Andrew Morton <akpm@digeo.com> | 2003-06-17 18:26:29 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@home.transmeta.com> | 2003-06-17 18:26:29 -0700 |
commit | 3307fbd1b43b4e748aa85a2c53676a3c172091be (patch) | |
tree | c3e97f571bb686cb9e0a5a712bd0a8f4e247114d /fs/ext3/xattr.c | |
parent | 0d0d85346679e596edb2522a57f0137bd8e48d5b (diff) | |
download | history-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.c | 2 |
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; } |