diff options
Diffstat (limited to 'drivers/infiniband/hw/ipath/ipath_fs.c')
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_fs.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_fs.c b/drivers/infiniband/hw/ipath/ipath_fs.c index 8c8afc716b98..31ae1b108aea 100644 --- a/drivers/infiniband/hw/ipath/ipath_fs.c +++ b/drivers/infiniband/hw/ipath/ipath_fs.c | |||
@@ -277,18 +277,14 @@ static int remove_file(struct dentry *parent, char *name) | |||
277 | goto bail; | 277 | goto bail; |
278 | } | 278 | } |
279 | 279 | ||
280 | spin_lock(&dcache_lock); | ||
281 | spin_lock(&tmp->d_lock); | 280 | spin_lock(&tmp->d_lock); |
282 | if (!(d_unhashed(tmp) && tmp->d_inode)) { | 281 | if (!(d_unhashed(tmp) && tmp->d_inode)) { |
283 | dget_locked(tmp); | 282 | dget_dlock(tmp); |
284 | __d_drop(tmp); | 283 | __d_drop(tmp); |
285 | spin_unlock(&tmp->d_lock); | 284 | spin_unlock(&tmp->d_lock); |
286 | spin_unlock(&dcache_lock); | ||
287 | simple_unlink(parent->d_inode, tmp); | 285 | simple_unlink(parent->d_inode, tmp); |
288 | } else { | 286 | } else |
289 | spin_unlock(&tmp->d_lock); | 287 | spin_unlock(&tmp->d_lock); |
290 | spin_unlock(&dcache_lock); | ||
291 | } | ||
292 | 288 | ||
293 | ret = 0; | 289 | ret = 0; |
294 | bail: | 290 | bail: |