summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-02-16 04:51:45 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2010-02-16 04:51:45 +0100
commit0aa2ca9ae1e08d11661abb00ae6e75ff885448d6 (patch)
treea770d55fd53b2658501672b5c0893cc1d91d5a07 /fs
parentMerge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/air... (diff)
parentreiserfs: Fix softlockup while waiting on an inode (diff)
downloadlinux-0aa2ca9ae1e08d11661abb00ae6e75ff885448d6.tar.xz
linux-0aa2ca9ae1e08d11661abb00ae6e75ff885448d6.zip
Merge branch 'reiserfs/kill-bkl' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing
* 'reiserfs/kill-bkl' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing: reiserfs: Fix softlockup while waiting on an inode
Diffstat (limited to 'fs')
-rw-r--r--fs/reiserfs/inode.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c
index 9087b10209e6..2df0f5c7c60b 100644
--- a/fs/reiserfs/inode.c
+++ b/fs/reiserfs/inode.c
@@ -1497,9 +1497,11 @@ struct inode *reiserfs_iget(struct super_block *s, const struct cpu_key *key)
args.objectid = key->on_disk_key.k_objectid;
args.dirid = key->on_disk_key.k_dir_id;
+ reiserfs_write_unlock(s);
inode = iget5_locked(s, key->on_disk_key.k_objectid,
reiserfs_find_actor, reiserfs_init_locked_inode,
(void *)(&args));
+ reiserfs_write_lock(s);
if (!inode)
return ERR_PTR(-ENOMEM);