[PATCH 3/5] block: remove support for the host aware zone model

Ed Tsai (蔡宗軒) Ed.Tsai at mediatek.com
Sun Dec 17 22:15:10 PST 2023


Hi Christoph,

some minor suggestions:

On Sun, 2023-12-17 at 17:53 +0100, Christoph Hellwig wrote:
> 
> diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
> index 198d38b53322c1..260b5b8f2b0d7e 100644
> --- a/drivers/md/dm-table.c
> +++ b/drivers/md/dm-table.c
> @@ -1579,21 +1579,18 @@ bool dm_table_has_no_data_devices(struct
> dm_table *t)
>  	return true;
>  }
>  
> -static int device_not_zoned_model(struct dm_target *ti, struct
> dm_dev *dev,
> -				  sector_t start, sector_t len, void
> *data)
> +static int device_not_zoned(struct dm_target *ti, struct dm_dev
> *dev,
> +			    sector_t start, sector_t len, void *data)
>  {
> -	struct request_queue *q = bdev_get_queue(dev->bdev);
> -	enum blk_zoned_model *zoned_model = data;
> +	bool *zoned = data;
>  
> -	return blk_queue_zoned_model(q) != *zoned_model;
> +	return bdev_is_zoned(dev->bdev) != *zoned;
>  }
>  
>  static int device_is_zoned_model(struct dm_target *ti, struct dm_dev
> *dev,
>  				 sector_t start, sector_t len, void
> *data)

Seems like the word "model" should also be remove here.

>  {
> -	struct request_queue *q = bdev_get_queue(dev->bdev);
> -
> -	return blk_queue_zoned_model(q) != BLK_ZONED_NONE;
> +	return bdev_is_zoned(dev->bdev);
>  }
>  
>  /*
> @@ -1603,8 +1600,7 @@ static int device_is_zoned_model(struct
> dm_target *ti, struct dm_dev *dev,
>   * has the DM_TARGET_MIXED_ZONED_MODEL feature set, the devices can
> have any
>   * zoned model with all zoned devices having the same zone size.
>   */
> -static bool dm_table_supports_zoned_model(struct dm_table *t,
> -					  enum blk_zoned_model
> zoned_model)
> +static bool dm_table_supports_zoned(struct dm_table *t, bool zoned)
>  {
>  	for (unsigned int i = 0; i < t->num_targets; i++) {
>  		struct dm_target *ti = dm_table_get_target(t, i);
> @@ -1623,11 +1619,11 @@ static bool
> dm_table_supports_zoned_model(struct dm_table *t,
>  
>  		if (dm_target_supports_zoned_hm(ti->type)) {
>  			if (!ti->type->iterate_devices ||
> -			    ti->type->iterate_devices(ti,
> device_not_zoned_model,
> -						      &zoned_model))
> +			    ti->type->iterate_devices(ti,
> device_not_zoned,
> +						      &zoned))
>  				return false;
>  		} else if (!dm_target_supports_mixed_zoned_model(ti-
> >type)) {
> -			if (zoned_model == BLK_ZONED_HM)
> +			if (zoned)
>  				return false;
>  		}
>  	}

The parameter "bool zoned" is redundant. It should be removed from the
above 3 functions

Additionally, because we no longer need to distinguish the zoned model
here, DM_TARGET_MIXED_ZONED_MODEL is meaningless. We can also clean up
its related code.


More information about the Linux-nvme mailing list