xfs
[Top] [All Lists]

[PATCH] Remove unnecessary assertion

To: xfs-oss <xfs@xxxxxxxxxxx>
Subject: [PATCH] Remove unnecessary assertion
From: Lachlan McIlroy <lachlan@xxxxxxx>
Date: Thu, 04 Dec 2008 17:27:47 +1100
Reply-to: lachlan@xxxxxxx
User-agent: Thunderbird 2.0.0.18 (X11/20081105)
Hit this assert because an inode was tagged with XFS_ICI_RECLAIM_TAG but
not XFS_IRECLAIMABLE|XFS_IRECLAIM.  This is because xfs_iget_cache_hit()
first clears XFS_IRECLAIMABLE and then calls __xfs_inode_clear_reclaim_tag()
while only holding the pag_ici_lock in read mode so we can race with
xfs_reclaim_inodes_ag().  Looks like xfs_reclaim_inodes_ag() will do the
right thing anyway so just remove the assert.

Thanks to Christoph for pointing out where the problem was.

--- xfs-fix.orig/fs/xfs/linux-2.6/xfs_sync.c
+++ xfs-fix/fs/xfs/linux-2.6/xfs_sync.c
@@ -707,8 +707,6 @@ restart:
                        break;
                }

-               ASSERT(xfs_iflags_test(ip, (XFS_IRECLAIMABLE|XFS_IRECLAIM)));
-
                /* ignore if already under reclaim */
                if (xfs_iflags_test(ip, XFS_IRECLAIM)) {
                        read_unlock(&pag->pag_ici_lock);

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