[dm-devel] [PATCH] dm zoned: Fix metadata zone size check
Damien Le Moal
Damien.LeMoal at wdc.com
Thu Jun 18 02:53:17 UTC 2020
On 2020/06/18 11:48, Shin'ichiro Kawasaki wrote:
> When dm zoned has multiple devices, metadata is on the cache device, not
> in random zones of the zoned devices. Then the number of metadata zones
> shall be checked with the number of cache zones, not random zones.
>
> Fixes: 34f5affd04c4 ("dm zoned: separate random and cache zones")
> Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki at wdc.com>
> ---
> drivers/md/dm-zoned-metadata.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/md/dm-zoned-metadata.c b/drivers/md/dm-zoned-metadata.c
> index 130b5a6d9f12..fc1329ca3e70 100644
> --- a/drivers/md/dm-zoned-metadata.c
> +++ b/drivers/md/dm-zoned-metadata.c
> @@ -1078,7 +1078,8 @@ static int dmz_check_sb(struct dmz_metadata *zmd, struct dmz_sb *dsb,
> nr_meta_zones = (le32_to_cpu(sb->nr_meta_blocks) + zmd->zone_nr_blocks - 1)
> >> zmd->zone_nr_blocks_shift;
> if (!nr_meta_zones ||
> - nr_meta_zones >= zmd->nr_rnd_zones) {
> + (zmd->nr_devs <= 1 && nr_meta_zones >= zmd->nr_rnd_zones) ||
> + (zmd->nr_devs > 1 && nr_meta_zones >= zmd->nr_cache_zones)) {
> dmz_dev_err(dev, "Invalid number of metadata blocks");
> return -ENXIO;
> }
>
Looks good to me.
Reviewed-by: Damien Le Moal <damien.lemoal at wdc.com>
--
Damien Le Moal
Western Digital Research
More information about the dm-devel
mailing list