[Top] [All Lists]

Re: xfs vs. lockdep

To: Eric Sandeen <sandeen@xxxxxxxxxxx>
Subject: Re: xfs vs. lockdep
From: Vlad Apostolov <vapo@xxxxxxx>
Date: Tue, 10 Oct 2006 09:36:09 +1000
Cc: xfs@xxxxxxxxxxx
In-reply-to: <452A8DE2.4000608@xxxxxxxxxxx>
References: <452A8DE2.4000608@xxxxxxxxxxx>
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Thunderbird (X11/20060909)
Eric Sandeen wrote:
FC6 kernels are oopsing when lockdep & memory debugging are turned on,
looks like due to this code:

xfs_ireclaim(xfs_inode_t *ip)
         * Here we do a spurious inode lock in order to coordinate with
         * xfs_sync().  This is because xfs_sync() references the inodes
         * in the mount list without taking references on the corresponding
         * vnodes.  We make that OK here by ensuring that we wait until
         * the inode is unlocked in xfs_sync() before we go ahead and
         * free it.  We get both the regular lock and the io lock because
         * the xfs_sync() code may need to drop the regular one but will
         * still hold the io lock.
        xfs_ilock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL);
         * Free all memory associated with the inode.

So, lock & free.  This frees memory that lockdep is still pointing to,
and tries to use later.

Calling xfs_iunlock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); just before
xfs_idestroy seems to solve it, but is this safe...?


Hi Eric,

Could you please provide some more information. What kernel, test case and call stack at the time of the crash.


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