]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_repair: convert helpers for rtbitmap block/wordcount computations
authorDarrick J. Wong <djwong@kernel.org>
Mon, 15 Apr 2024 23:07:29 +0000 (16:07 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Wed, 17 Apr 2024 21:06:23 +0000 (14:06 -0700)
Port xfs_repair to use the new helper functions that compute the number
of blocks or words necessary to store the rt bitmap.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Bill O'Donnell <bodonnel@redhat.com>
libxfs/libxfs_api_defs.h
repair/rt.c

index a16efa00757247d1fd7e9ce6a120f49ce45b2fb1..5180da2fcea6ef43b21287b718216835d45e280c 100644 (file)
 #define xfs_rmap_lookup_le_range       libxfs_rmap_lookup_le_range
 #define xfs_rmap_query_range           libxfs_rmap_query_range
 
+#define xfs_rtbitmap_wordcount         libxfs_rtbitmap_wordcount
+
 #define xfs_rtfree_extent              libxfs_rtfree_extent
 #define xfs_rtfree_blocks              libxfs_rtfree_blocks
 #define xfs_sb_from_disk               libxfs_sb_from_disk
index 8f3b9082a9b8eed615af1867e2ff0f74e7109098..244b59f04ce5b8e518d7b9afd25be2a15bb47f41 100644 (file)
@@ -19,6 +19,8 @@
 void
 rtinit(xfs_mount_t *mp)
 {
+       unsigned long long      wordcnt;
+
        if (mp->m_sb.sb_rblocks == 0)
                return;
 
@@ -26,11 +28,9 @@ rtinit(xfs_mount_t *mp)
         * realtime init -- blockmap initialization is
         * handled by incore_init()
         */
-       /*
-       sumfile = calloc(mp->m_rsumsize, 1);
-       */
-       if ((btmcompute = calloc(mp->m_sb.sb_rbmblocks *
-                       mp->m_sb.sb_blocksize, 1)) == NULL)
+       wordcnt = libxfs_rtbitmap_wordcount(mp, mp->m_sb.sb_rextents);
+       btmcompute = calloc(wordcnt, sizeof(xfs_rtword_t));
+       if (!btmcompute)
                do_error(
        _("couldn't allocate memory for incore realtime bitmap.\n"));