From b5d372d96db1adb316c91a058dddffb38ef6d166 Mon Sep 17 00:00:00 2001 From: Christoph Hellwig Date: Thu, 18 Dec 2025 17:09:32 +0100 Subject: [PATCH] mkfs: adjust_nr_zones for zoned file system on conventional devices When creating zoned file systems on conventional devices, mkfs doesn't currently align the RT device size to the zone size, which can create unmountable file systems. Fix this by moving the rgcount modification to account for reserved zoned and then calling adjust_nr_zones unconditionally, and thus ensuring that the rtblocks and rtextents values are guaranteed to always be a multiple of the zone size. Signed-off-by: Christoph Hellwig Reviewed-by: Darrick J. Wong --- mkfs/xfs_mkfs.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c index 8db51217..b3440772 100644 --- a/mkfs/xfs_mkfs.c +++ b/mkfs/xfs_mkfs.c @@ -4558,8 +4558,6 @@ adjust_nr_zones( max_zones = DTOBT(cli->xi->rt.size, cfg->blocklog) / cfg->rgsize; - if (!cli->rgcount) - cfg->rgcount += XFS_RESERVED_ZONES; if (cfg->rgcount > max_zones) { fprintf(stderr, _("Warning: not enough zones (%lu/%u) for backing requested rt size due to\n" @@ -4652,9 +4650,9 @@ _("rgsize (%s) not a multiple of fs blk size (%d)\n"), } } - if (cli->rtsize || cli->rgcount) - adjust_nr_zones(cfg, cli, zt); - + if (cli->rtsize) + cfg->rgcount += XFS_RESERVED_ZONES; + adjust_nr_zones(cfg, cli, zt); if (cfg->rgcount < XFS_MIN_ZONES) { fprintf(stderr, _("realtime group count (%llu) must be greater than the minimum zone count (%u)\n"), -- 2.47.3