On Mon, Apr 16, 2012 at 08:34:21AM -0500, Alex Elder wrote:
> I am getting the following warning while running xfstests. I haven't
> started looking at it closely yet, but I wanted to report it so others
> could have a look. The XFS code in use was at commit c922bbc819,
Which does not modify locking at all.
> with ad637a10f4 cherry-picked on top of it. The tests all passed,
And that modifies the way we do inode reclaim synchronisation by
ILOCK rather than by IOLOCK|ILOCK. Neither of these are touching the
dquot locking at all, so I'm having trouble understanding why these
commits would cause a problem with a dquot mutex....
> so now I'm going to have to narrow down which test produces the failure
> (it was not near the first, nor the last test...).
> Here is the source of the warning:
> DEBUG_LOCKS_WARN_ON(ti->task->blocked_on != waiter);
That implies that the task is currently trying to acquire two
mutexes at once - which I can't see is possible. How different are
the two values i.e. are you seeing memory corruption?
Also, what case is the code running through? is it taking the
xfs_dqlock2() branch, and if so are the two dquots different?