diff options
author | Nick Piggin <npiggin@suse.de> | 2010-01-29 18:38:25 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2010-04-27 11:32:38 -0400 |
commit | b5acee084dabd0916f73c65a42fd25e94bc3cd21 (patch) | |
tree | cd9ff8cb124705fd6829f018e28bec79376421b4 /arch | |
parent | ec3bfd045ef0c1490683389cb46ac131e9c79712 (diff) |
dcache-split-inode_lock
dcache_inode_lock can be replaced with per-inode locking. Use existing
inode->i_lock for this. This is slightly non-trivial because we sometimes
need to find the inode from the dentry, which requires d_inode to be
stabilised (either with refcount or d_lock).
Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/platforms/cell/spufs/inode.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/cell/spufs/inode.c b/arch/powerpc/platforms/cell/spufs/inode.c index 5f89414446c4..7f0737214788 100644 --- a/arch/powerpc/platforms/cell/spufs/inode.c +++ b/arch/powerpc/platforms/cell/spufs/inode.c | |||
@@ -160,7 +160,7 @@ static void spufs_prune_dir(struct dentry *dir) | |||
160 | list_for_each_entry_safe(dentry, tmp, &dir->d_subdirs, d_u.d_child) { | 160 | list_for_each_entry_safe(dentry, tmp, &dir->d_subdirs, d_u.d_child) { |
161 | spin_lock(&dentry->d_lock); | 161 | spin_lock(&dentry->d_lock); |
162 | if (!(d_unhashed(dentry)) && dentry->d_inode) { | 162 | if (!(d_unhashed(dentry)) && dentry->d_inode) { |
163 | dget_locked_dlock(dentry); | 163 | dget_dlock(dentry); |
164 | __d_drop(dentry); | 164 | __d_drop(dentry); |
165 | spin_unlock(&dentry->d_lock); | 165 | spin_unlock(&dentry->d_lock); |
166 | simple_unlink(dir->d_inode, dentry); | 166 | simple_unlink(dir->d_inode, dentry); |