From: Christoph Hellwig Date: Thu, 18 Dec 2025 16:09:32 +0000 (+0100) Subject: mkfs: adjust_nr_zones for zoned file system on conventional devices X-Git-Tag: v6.18.0~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b5d372d96db1adb316c91a058dddffb38ef6d166;p=thirdparty%2Fxfsprogs-dev.git 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 --- 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"),