[PATCH 42/43] mkfs: add headers to realtime bitmap blocks

Darrick J. Wong
2024-10-11T01:35:31Z

When the rtgroups feature is enabled, format rtbitmap blocks with the
appropriate block headers. libxfs takes care of the actual writing for
us, so all we have to do is ensure that the bitmap is the correct size.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
---
mkfs/xfs_mkfs.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c
index 38a51b43f55993..4ea734a4d48f59 100644
--- a/mkfs/xfs_mkfs.c
+++ b/mkfs/xfs_mkfs.c
@@ -3210,6 +3210,7 @@ validate_rtdev(
struct cli_params *cli)
{
struct libxfs_init *xi = cli->xi;
+ unsigned int rbmblocksize = cfg->blocksize;

if (!xi->rt.dev) {
if (cli->rtsize) {
@@ -3253,8 +3254,10 @@ reported by the device (%u).\n"),
_("cannot have an rt subvolume with zero extents\n"));
usage();
}
+ if (cfg->sb_feat.metadir)
+ rbmblocksize -= sizeof(struct xfs_rtbuf_blkinfo);
cfg->rtbmblocks = (xfs_extlen_t)howmany(cfg->rtextents,
- NBBY * cfg->blocksize);
+ NBBY * rbmblocksize);
}

static bool