xfs: fix dquot isolation hang
authorDave Chinner <david@fromorbit.com>
Wed, 28 Aug 2013 00:18:08 +0000 (10:18 +1000)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 10 Sep 2013 22:56:31 +0000 (18:56 -0400)
commit35163417fb7a55a24b6b0ebb102e9991adf309aa
tree070f440f9f3e34a712a53b8d1cf7eea9f1b0c443
parent2f5b56f85674d75f35a10e2e9a4310e7539280da
xfs: fix dquot isolation hang

The new LRU list isolation code in xfs_qm_dquot_isolate() isn't
completely up to date.  Firstly, it needs conversion to return enum
lru_status values, not raw numbers. Secondly - most importantly - it
fails to unlock the dquot and relock the LRU in the LRU_RETRY path.
This leads to deadlocks in xfstests generic/232. Fix them.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Cc: Glauber Costa <glommer@gmail.com>
Cc: Michal Hocko <mhocko@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/xfs/xfs_qm.c