xfs
[Top] [All Lists]

[PATCH 2/5] xfs: skip stale inodes in xfs_iflush_cluster

To: xfs@xxxxxxxxxxx
Subject: [PATCH 2/5] xfs: skip stale inodes in xfs_iflush_cluster
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Wed, 6 Apr 2016 19:22:51 +1000
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <1459934574-25543-1-git-send-email-david@xxxxxxxxxxxxx>
References: <1459934574-25543-1-git-send-email-david@xxxxxxxxxxxxx>
From: Dave Chinner <dchinner@xxxxxxxxxx>

We don't write back stale inodes, so we should skip them in
xfS_iflush_cluster, too.

Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
---
 fs/xfs/xfs_inode.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index 2718d10..6598104 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -3190,10 +3190,11 @@ xfs_iflush_cluster(
                 * because this is an RCU protected lookup, we could find a
                 * recently freed or even reallocated inode during the lookup.
                 * We need to check under the i_flags_lock for a valid inode
-                * here. Skip it if it is not valid or the wrong inode.
+                * here. Skip it if it is not valid, stale or the wrong inode.
                 */
                spin_lock(&cip->i_flags_lock);
                if (!cip->i_ino ||
+                   __xfs_iflags_test(ip, XFS_ISTALE) ||
                    (XFS_INO_TO_AGINO(mp, cip->i_ino) & mask) != first_index) {
                        spin_unlock(&cip->i_flags_lock);
                        continue;
-- 
2.7.0

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