@Greg
I can apply patch 081003fff467ea0e727f66d5d435b4f473a789b3 to the tree,
but could you verify that it resolves your issue first before I do that?
I've tried to backport the patch and resulted in the patch i attached.
I'll now wait some days if it really fixes my problem.
@Dave
I'm travelling for the next week and a half, so I won't be able to
get to it any time soon....
Would be nice if you could have a short look over my patch attempt.
Greets Stefan
diff -upr orig/linux-2.6.32.40/fs/xfs/linux-2.6/xfs_sync.c linux-2.6.32.40/fs/xfs/linux-2.6/xfs_sync.c
--- orig/linux-2.6.32.40/fs/xfs/linux-2.6/xfs_sync.c 2011-05-10 01:03:02.000000000 +0200
+++ linux-2.6.32.40/fs/xfs/linux-2.6/xfs_sync.c 2011-06-08 10:24:50.074080844 +0200
@@ -711,16 +711,24 @@ xfs_inode_set_reclaim_tag(
}
void
-__xfs_inode_clear_reclaim_tag(
- xfs_mount_t *mp,
+__xfs_inode_clear_reclaim(
xfs_perag_t *pag,
xfs_inode_t *ip)
{
- radix_tree_tag_clear(&pag->pag_ici_root,
- XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG);
pag->pag_ici_reclaimable--;
}
+void
+__xfs_inode_clear_reclaim_tag(
+ xfs_mount_t *mp,
+ xfs_perag_t *pag,
+ xfs_inode_t *ip)
+{
+ radix_tree_tag_clear(&pag->pag_ici_root,
+ XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG);
+ __xfs_inode_clear_reclaim(pag, ip);
+}
+
STATIC int
xfs_reclaim_inode(
struct xfs_inode *ip,
diff -upr orig/linux-2.6.32.40/fs/xfs/linux-2.6/xfs_sync.h linux-2.6.32.40/fs/xfs/linux-2.6/xfs_sync.h
--- orig/linux-2.6.32.40/fs/xfs/linux-2.6/xfs_sync.h 2011-05-10 01:03:02.000000000 +0200
+++ linux-2.6.32.40/fs/xfs/linux-2.6/xfs_sync.h 2011-06-08 09:44:09.468747065 +0200
@@ -48,6 +48,7 @@ int xfs_reclaim_inodes(struct xfs_mount
void xfs_inode_set_reclaim_tag(struct xfs_inode *ip);
void __xfs_inode_set_reclaim_tag(struct xfs_perag *pag, struct xfs_inode *ip);
+void __xfs_inode_clear_reclaim(struct xfs_perag *pag, struct xfs_inode *ip);
void __xfs_inode_clear_reclaim_tag(struct xfs_mount *mp, struct xfs_perag *pag,
struct xfs_inode *ip);
diff -upr orig/linux-2.6.32.40/fs/xfs/xfs_iget.c linux-2.6.32.40/fs/xfs/xfs_iget.c
--- orig/linux-2.6.32.40/fs/xfs/xfs_iget.c 2011-05-10 01:03:02.000000000 +0200
+++ linux-2.6.32.40/fs/xfs/xfs_iget.c 2011-06-08 09:44:09.471746918 +0200
@@ -529,6 +529,7 @@ xfs_ireclaim(
write_lock(&pag->pag_ici_lock);
if (!radix_tree_delete(&pag->pag_ici_root, agino))
ASSERT(0);
+ __xfs_inode_clear_reclaim(pag, ip);
write_unlock(&pag->pag_ici_lock);
xfs_put_perag(mp, pag);
_______________________________________________
stable mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/stable