Re: [PATCH v12 13/13] dm: add power-of-2 target for zoned devices with non power-of-2 zone sizes

From: Pankaj Raghav
Date: Fri Sep 02 2022 - 08:05:20 EST


On 2022-08-23 14:18, Pankaj Raghav wrote:

> +static int dm_po2z_iterate_devices(struct dm_target *ti,
> + iterate_devices_callout_fn fn, void *data)
> +{
> + struct dm_po2z_target *dmh = ti->private;
> + sector_t len = dmh->nr_zones * dmh->zone_size;
> +
> + return fn(ti, dmh->dev, 0, len, data);
> +}
> +
> +static struct target_type dm_po2z_target = {
> + .name = "po2zone",
> + .version = { 1, 0, 0 },
> + .features = DM_TARGET_ZONED_HM | DM_TARGET_EMULATED_ZONES,

This target also supports DM_TARGET_NOWAIT feature flag. I will add it in
the next version.

> + .map = dm_po2z_map,
> + .end_io = dm_po2z_end_io,
> + .report_zones = dm_po2z_report_zones,
> + .iterate_devices = dm_po2z_iterate_devices,
> + .module = THIS_MODULE,
> + .io_hints = dm_po2z_io_hints,
> + .ctr = dm_po2z_ctr,
> +};
> +
> +static int __init dm_po2z_init(void)
> +{
> + return dm_register_target(&dm_po2z_target);
> +}
> +
> +static void __exit dm_po2z_exit(void)
> +{
> + dm_unregister_target(&dm_po2z_target);
> +}
> +
> +/* Module hooks */
> +module_init(dm_po2z_init);
> +module_exit(dm_po2z_exit);
> +
> +MODULE_DESCRIPTION(DM_NAME "power-of-2 zoned target");
> +MODULE_AUTHOR("Pankaj Raghav <p.raghav@xxxxxxxxxxx>");
> +MODULE_LICENSE("GPL");
> +