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 <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
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"
}
}
- 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"),