http://bugzilla.kernel.org/show_bug.cgi?id=13375
--- Comment #11 from Stephane <sharnois@xxxxxxxxx> 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.
|