summaryrefslogtreecommitdiffstats
path: root/fs/reiserfs/file.c
diff options
context:
space:
mode:
authorChris Mason <mason@suse.com>2006-08-05 21:15:08 +0200
committerLinus Torvalds <torvalds@g5.osdl.org>2006-08-06 17:57:49 +0200
commitb5f3953c10b27fcd1c83e199e573b41d8327e22e (patch)
treea7d3cafe3dbdfcfaa09de415bc46d3829c634bdb /fs/reiserfs/file.c
parent[PATCH] memory hotadd fixes: enhance collision check (diff)
downloadlinux-b5f3953c10b27fcd1c83e199e573b41d8327e22e.tar.xz
linux-b5f3953c10b27fcd1c83e199e573b41d8327e22e.zip
[PATCH] fix reiserfs lock inversion of bkl vs inode semaphore
The correct lock ordering is inode lock -> BKL Signed-off-by: Chris Mason <mason@suse.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/reiserfs/file.c')
-rw-r--r--fs/reiserfs/file.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/reiserfs/file.c b/fs/reiserfs/file.c
index f318b58510fd..1627edd50810 100644
--- a/fs/reiserfs/file.c
+++ b/fs/reiserfs/file.c
@@ -48,8 +48,8 @@ static int reiserfs_file_release(struct inode *inode, struct file *filp)
return 0;
}
- reiserfs_write_lock(inode->i_sb);
mutex_lock(&inode->i_mutex);
+ reiserfs_write_lock(inode->i_sb);
/* freeing preallocation only involves relogging blocks that
* are already in the current transaction. preallocation gets
* freed at the end of each transaction, so it is impossible for