Re: XFS reclaim lock order bug

Nick Piggin
2010-11-25T03:46:52Z

On Wed, Nov 24, 2010 at 03:03:41PM -0500, Christoph Hellwig wrote:
> On Wed, Nov 24, 2010 at 08:12:58AM +1100, Dave Chinner wrote:
> > It is supposed to be handled by the re-initialisation of the
> > ip->i_iolock in ->evict_inode (xfs_fs_evict_inode). An inode found
> > in the reclaim state must have passed through this reinitialisation,
> > so from a lockdep perspective the iolock in the vfs path is a
> > different context to the iolock in the reclaim path. That fixed all
> > the non-reclaim state related lockdep false positives, so Perhaps
> > there is an issue with the lockdep reclaim state checking that does
> > not interact well with re-initialised lock contexts?
>
> I've been looking through this again, and I think it's indeed not
> enough. We don't just need to re-initialize it, but also set a
> different lockclass for it.

Doesn't init_rwsem give it a new class?

Guys, can you take a quick look at the code Dave is referring to
(xfs_fs_evict_inode), and check that it actually does what he
intends?

We're getting what seems to be false positives in reclaim inversion
of lockings. Backtraces here
http://oss.sgi.com/pipermail/xfs/2010-November/048092.html

Thanks,
Nick