[xfs-masters] [Bug 13375] Kernel crash with 2.6.29 + nfs + xfs (radix-tree)

bugzilla-daemon at bugzilla.kernel.org bugzilla-daemon at bugzilla.kernel.org
Mon Jun 15 11:08:58 CDT 2009


http://bugzilla.kernel.org/show_bug.cgi?id=13375





--- Comment #11 from Stephane <sharnois at max-t.com>  2009-06-15 16:08:56 ---
in xfs_inode_set_reclaim_tag, I addedd a check:

        if (radix_tree_lookup(&pag->pag_ici_root, ag))
                radix_tree_tag_set(&pag->pag_ici_root, ag,
XFS_ICI_RECLAIM_TAG);
        else
                xfs_fs_cmn_err(CE_WARN, mp, "radix tree error on ag %d", ag);

my file system has 488 AG, I got this on the console:

Filesystem "drbd0": radix tree error on ag 636048
Filesystem "drbd0": radix tree error on ag 636048
Filesystem "drbd0": radix tree error on ag 2052
Filesystem "drbd0": radix tree error on ag 2052

Also I changed my patch to unlock before the set_reclaim call.

--- linux-orig/fs/xfs/xfs_vnodeops.c    2009-06-12 11:45:09.841788774 -0400
+++ linux/fs/xfs/xfs_vnodeops.c 2009-06-12 11:47:11.525856430 -0400
@@ -2702,13 +2702,14 @@
         * that has a linux inode being reclaimed. Synchronisation is provided
         * by the i_flags_lock.
         */
+       xfs_ilock(ip, XFS_ILOCK_EXCL);
        if (!ip->i_update_core && (ip->i_itemp == NULL)) {
-               xfs_ilock(ip, XFS_ILOCK_EXCL);
                xfs_iflock(ip);
                xfs_iflags_set(ip, XFS_IRECLAIMABLE);
                return xfs_reclaim_inode(ip, 1, XFS_IFLUSH_DELWRI_ELSE_SYNC);
        }
+       xfs_iunlock(ip, XFS_ILOCK_EXCL);
        xfs_inode_set_reclaim_tag(ip);
        return 0;
 }

-- 
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the xfs-masters mailing list