xfs
[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 1.5.0.7 (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.
         */
        xfs_idestroy(ip);
}

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...?

-Eric

Hi Eric,

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

Thanks,
Vlad


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