[PATCH 8/8] xfs: fix dquot shaker deadlock
Christoph Hellwig
hch at infradead.org
Tue Jan 25 03:52:42 CST 2011
On Tue, Jan 25, 2011 at 07:50:44PM +1100, Dave Chinner wrote:
> From: Dave Chinner <dchinner at redhat.com>
>
> Commit 368e136 ("xfs: remove duplicate code from dquot reclaim") fails
> to unlock the dquot freelist when the number of loop restarts is
> exceeded in xfs_qm_dqreclaim_one(). This causes hangs in memory
> reclaim. Remove the bogus loop exit check that causes the problem.
The fix looks correct, but it's a bit inconsequential about when
to adhere the retry limit and when not. Shouldn't we just turn the
exit condition into:
if (dqout || restarts >= XFS_QM_RECLAIM_MAX_RESTARTS)
break;
also the failure to acquite qi_dqlist_lock increments the restart
count twice, which was also added in the same commit.
More information about the xfs
mailing list