[dm-devel] [PATCH 01/11] dm-zoned: store zone id within the zone structure
Damien Le Moal
Damien.LeMoal at wdc.com
Tue Apr 7 01:47:27 UTC 2020
On 2020/04/07 2:26, Hannes Reinecke wrote:
> Instead of calculating the zone index by the offset within the
> zone array store the index within the structure itself.
>
> Signed-off-by: Hannes Reinecke <hare at suse.de>
> ---
> drivers/md/dm-zoned-metadata.c | 3 ++-
> drivers/md/dm-zoned.h | 3 +++
> 2 files changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/md/dm-zoned-metadata.c b/drivers/md/dm-zoned-metadata.c
> index c8787560fa9f..afce594067fb 100644
> --- a/drivers/md/dm-zoned-metadata.c
> +++ b/drivers/md/dm-zoned-metadata.c
> @@ -189,7 +189,7 @@ struct dmz_metadata {
> */
> unsigned int dmz_id(struct dmz_metadata *zmd, struct dm_zone *zone)
> {
> - return ((unsigned int)(zone - zmd->zones));
> + return zone->id;
The zmd argument is now unused, and the helper does not make much sense anymore.
Why not just drop it entirely ? Callers directly referencing the ->id field of a
zone is simple and clear.
> }
>
> sector_t dmz_start_sect(struct dmz_metadata *zmd, struct dm_zone *zone)
> @@ -1119,6 +1119,7 @@ static int dmz_init_zone(struct blk_zone *blkz, unsigned int idx, void *data)
>
> INIT_LIST_HEAD(&zone->link);
> atomic_set(&zone->refcount, 0);
> + zone->id = idx;
> zone->chunk = DMZ_MAP_UNMAPPED;
>
> switch (blkz->type) {
> diff --git a/drivers/md/dm-zoned.h b/drivers/md/dm-zoned.h
> index 884c0e586082..39d59898abbe 100644
> --- a/drivers/md/dm-zoned.h
> +++ b/drivers/md/dm-zoned.h
> @@ -87,6 +87,9 @@ struct dm_zone {
> /* Zone activation reference count */
> atomic_t refcount;
>
> + /* Zone id */
> + unsigned int id;
> +
> /* Zone write pointer block (relative to the zone start block) */
> unsigned int wp_block;
>
>
--
Damien Le Moal
Western Digital Research
More information about the dm-devel
mailing list