]> git.karo-electronics.de Git - karo-tx-linux.git/commit
reiserfs: fix inode mutex - reiserfs lock misordering
authorFrederic Weisbecker <fweisbec@gmail.com>
Wed, 24 Nov 2010 20:57:15 +0000 (12:57 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 9 Dec 2010 21:32:26 +0000 (13:32 -0800)
commitfec32bc5795b53a354d991c9652b671359e9f494
treee7670afae7a866be58d31ecc9ac519a5664fc774
parent1358a603a302fe587c682e94c238c514ec07667b
reiserfs: fix inode mutex - reiserfs lock misordering

commit da905873effecd1c0166e578bc4b5006f041b18b upstream.

reiserfs_unpack() locks the inode mutex with reiserfs_mutex_lock_safe()
to protect against reiserfs lock dependency.  However this protection
requires to have the reiserfs lock to be locked.

This is the case if reiserfs_unpack() is called by reiserfs_ioctl but
not from reiserfs_quota_on() when it tries to unpack tails of quota
files.

Fix the ordering of the two locks in reiserfs_unpack() to fix this
issue.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Reported-by: Markus Gapp <markus.gapp@gmx.net>
Reported-by: Jan Kara <jack@suse.cz>
Cc: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/reiserfs/ioctl.c