On Tue, 2011-01-25 at 19:50 +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. > > Reported-by: Malcolm Scott <lkml@xxxxxxxxxxx> > Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> > --- > fs/xfs/quota/xfs_qm.c | 2 -- > 1 files changed, 0 insertions(+), 2 deletions(-) I see what Christoph means about the double-increment of restart in the case where qi_dqlist_lock is not acquired. That ought to be fixed. I also agree with his suggested loop termination condition change. Also, restarts is pre-incremented in the XFS_DQ_WANT case at the top, but post-incremented elsewhere for some reason. I think they all ought to be the same. -Alex _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs