]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
xfs: calculate RT bitmap and summary blocks based on sb_rextents
authorChristoph Hellwig <hch@lst.de>
Mon, 4 Nov 2024 04:19:12 +0000 (20:19 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Tue, 5 Nov 2024 21:38:37 +0000 (13:38 -0800)
Use the on-disk rextents to calculate the bitmap and summary blocks
instead of the calculated one so that we can refactor the helpers for
calculating them.

As the RT bitmap and summary scrubbers already check that sb_rextents
match the block count this does not change coverage of the scrubber.

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

index c68de973e5f26c5e86dcc8c8c54e03a013b4d8ab..5b42e01a07ac8b6fa26715d8bbfb0b0bcabffd5f 100644 (file)
@@ -67,7 +67,8 @@ xchk_setup_rtbitmap(
        if (mp->m_sb.sb_rblocks) {
                rtb->rextents = xfs_rtb_to_rtx(mp, mp->m_sb.sb_rblocks);
                rtb->rextslog = xfs_compute_rextslog(rtb->rextents);
-               rtb->rbmblocks = xfs_rtbitmap_blockcount(mp, rtb->rextents);
+               rtb->rbmblocks = xfs_rtbitmap_blockcount(mp,
+                               mp->m_sb.sb_rextents);
        }
 
        return 0;
index cda5e836862178fa18684a7c1960e2338e192045..7c2b6add44e8c93ff3a53247ba5eba5974c08773 100644 (file)
@@ -105,9 +105,10 @@ xchk_setup_rtsummary(
                int             rextslog;
 
                rts->rextents = xfs_rtb_to_rtx(mp, mp->m_sb.sb_rblocks);
-               rextslog = xfs_compute_rextslog(rts->rextents);
+               rextslog = xfs_compute_rextslog(mp->m_sb.sb_rextents);
                rts->rsumlevels = rextslog + 1;
-               rts->rbmblocks = xfs_rtbitmap_blockcount(mp, rts->rextents);
+               rts->rbmblocks = xfs_rtbitmap_blockcount(mp,
+                               mp->m_sb.sb_rextents);
                rts->rsumblocks = xfs_rtsummary_blockcount(mp, rts->rsumlevels,
                                rts->rbmblocks);
        }