xfs: fix stray dquot unlock when reclaiming dquots
authorDave Chinner <dchinner@redhat.com>
Wed, 28 Nov 2012 02:01:02 +0000 (13:01 +1100)
committerBen Myers <bpm@sgi.com>
Thu, 29 Nov 2012 20:24:03 +0000 (14:24 -0600)
commitb870553cdecb26d5291af09602352b763e323df2
tree4d7cfd6b3485d7e204003abc084245dc9a4e2ab5
parent437a255aa23766666aec78af63be4c253faa8d57
xfs: fix stray dquot unlock when reclaiming dquots

When we fail to get a dquot lock during reclaim, we jump to an error
handler that unlocks the dquot. This is wrong as we didn't lock the
dquot, and unlocking it means who-ever is holding the lock has had
it silently taken away, and hence it results in a lock imbalance.

Found by inspection while modifying the code for the numa-lru
patchset. This fixes a random hang I've been seeing on xfstest 232
for the past several months.

cc: <stable@vger.kernel.org>
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Ben Myers <bpm@sgi.com>
fs/xfs/xfs_qm.c