diff options
author | Nick Piggin <npiggin@suse.de> | 2010-01-29 18:38:23 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2010-04-27 11:32:35 -0400 |
commit | 6465e96519c08e46bd8e366ad5e7039fa9a035bb (patch) | |
tree | 0f25c38d5e264976180be92ef1d189255e57d3aa /arch | |
parent | a9865fc4ed12399c21bc7393d8f12431c563d18d (diff) |
fs-dcache_lock-remove
dcache_lock no longer protects anything (I hope). remove it.
This breaks a lot of the tree where I haven't thought about the problem,
but it simplifies the dcache.c code quite a bit (and it's also probably
a good thing to break unconverted code). So I include this here before
making further changes to the locking.
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 | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/arch/powerpc/platforms/cell/spufs/inode.c b/arch/powerpc/platforms/cell/spufs/inode.c index f3eab8dc3df8..5f89414446c4 100644 --- a/arch/powerpc/platforms/cell/spufs/inode.c +++ b/arch/powerpc/platforms/cell/spufs/inode.c | |||
@@ -158,21 +158,18 @@ static void spufs_prune_dir(struct dentry *dir) | |||
158 | 158 | ||
159 | mutex_lock(&dir->d_inode->i_mutex); | 159 | mutex_lock(&dir->d_inode->i_mutex); |
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(&dcache_lock); | ||
162 | spin_lock(&dentry->d_lock); | 161 | spin_lock(&dentry->d_lock); |
163 | if (!(d_unhashed(dentry)) && dentry->d_inode) { | 162 | if (!(d_unhashed(dentry)) && dentry->d_inode) { |
164 | dget_locked_dlock(dentry); | 163 | dget_locked_dlock(dentry); |
165 | __d_drop(dentry); | 164 | __d_drop(dentry); |
166 | spin_unlock(&dentry->d_lock); | 165 | spin_unlock(&dentry->d_lock); |
167 | simple_unlink(dir->d_inode, dentry); | 166 | simple_unlink(dir->d_inode, dentry); |
168 | /* XXX: what is dcache_lock protecting here? Other | 167 | /* XXX: what was dcache_lock protecting here? Other |
169 | * filesystems (IB, configfs) release dcache_lock | 168 | * filesystems (IB, configfs) release dcache_lock |
170 | * before unlink */ | 169 | * before unlink */ |
171 | spin_unlock(&dcache_lock); | ||
172 | dput(dentry); | 170 | dput(dentry); |
173 | } else { | 171 | } else { |
174 | spin_unlock(&dentry->d_lock); | 172 | spin_unlock(&dentry->d_lock); |
175 | spin_unlock(&dcache_lock); | ||
176 | } | 173 | } |
177 | } | 174 | } |
178 | shrink_dcache_parent(dir); | 175 | shrink_dcache_parent(dir); |