xfs
[Top] [All Lists]

Re: [PATCH 8/8] xfs: fix dquot shaker deadlock

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 8/8] xfs: fix dquot shaker deadlock
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Tue, 25 Jan 2011 04:52:42 -0500
Cc: xfs@xxxxxxxxxxx
In-reply-to: <1295945444-29488-9-git-send-email-david@xxxxxxxxxxxxx>
References: <1295945444-29488-1-git-send-email-david@xxxxxxxxxxxxx> <1295945444-29488-9-git-send-email-david@xxxxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Tue, Jan 25, 2011 at 07:50:44PM +1100, Dave Chinner wrote:
> From: Dave Chinner <dchinner@xxxxxxxxxx>
> 
> 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.

<Prev in Thread] Current Thread [Next in Thread>