]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
xfs: cross-reference realtime bitmap to realtime rmapbt scrubber
authorDarrick J. Wong <djwong@kernel.org>
Thu, 21 Nov 2024 00:20:35 +0000 (16:20 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Mon, 23 Dec 2024 21:06:07 +0000 (13:06 -0800)
When we're checking the realtime rmap btree entries, cross-reference
those entries with the realtime bitmap too.

Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/scrub/rtrmap.c

index 7b5f932bcd947f195d78794e7b540e69f7ce4941..515c2a9b02cdaed713c6a79614180e165f581d13 100644 (file)
@@ -142,6 +142,20 @@ xchk_rtrmapbt_check_mergeable(
        memcpy(&cr->prev_rec, irec, sizeof(struct xfs_rmap_irec));
 }
 
+/* Cross-reference with other metadata. */
+STATIC void
+xchk_rtrmapbt_xref(
+       struct xfs_scrub        *sc,
+       struct xfs_rmap_irec    *irec)
+{
+       if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
+               return;
+
+       xchk_xref_is_used_rt_space(sc,
+                       xfs_rgbno_to_rtb(sc->sr.rtg, irec->rm_startblock),
+                       irec->rm_blockcount);
+}
+
 /* Scrub a realtime rmapbt record. */
 STATIC int
 xchk_rtrmapbt_rec(
@@ -162,6 +176,7 @@ xchk_rtrmapbt_rec(
 
        xchk_rtrmapbt_check_mergeable(bs, cr, &irec);
        xchk_rtrmapbt_check_overlapping(bs, cr, &irec);
+       xchk_rtrmapbt_xref(bs->sc, &irec);
        return 0;
 }