summaryrefslogtreecommitdiff
path: root/fs/xfs/xfs_buf.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/xfs_buf.c')
-rw-r--r--fs/xfs/xfs_buf.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c
index 5fa6cd947dd4..3686b73c9e18 100644
--- a/fs/xfs/xfs_buf.c
+++ b/fs/xfs/xfs_buf.c
@@ -470,8 +470,12 @@ _xfs_buf_obj_cmp(
* it stale has not yet committed. i.e. we are
* reallocating a busy extent. Skip this buffer and
* continue searching for an exact match.
+ *
+ * Note: If we're scanning for incore buffers to stale, don't
+ * complain if we find non-stale buffers.
*/
- ASSERT(bp->b_flags & XBF_STALE);
+ if (!(map->bm_flags & XBM_SCAN_STALE))
+ ASSERT(bp->b_flags & XBF_STALE);
return 1;
}
return 0;
@@ -537,6 +541,9 @@ xfs_buf_find(
*found_bp = NULL;
+ if (flags & XBF_SCAN_STALE)
+ cmap.bm_flags |= XBM_SCAN_STALE;
+
for (i = 0; i < nmaps; i++)
cmap.bm_len += map[i].bm_len;