| 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
|
| Previous by Date: | [PATCH 1/5] xfs: fix inode validity check in xfs_iflush_cluster, Dave Chinner |
|---|---|
| Next by Date: | [PATCH 5/5] xfs: mark reclaimed inodes invalid earlier, Dave Chinner |
| Previous by Thread: | Re: [PATCH 1/5] xfs: fix inode validity check in xfs_iflush_cluster, Christoph Hellwig |
| Next by Thread: | Re: [PATCH 2/5] xfs: skip stale inodes in xfs_iflush_cluster, Brian Foster |
| Indexes: | [Date] [Thread] [Top] [All Lists] |