On 2023/12/18 15:15, Ed Tsai (蔡宗軒) wrote: > 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. Nope. The mixed thing is for mixing up non-zoned with zoned models. For the entire DM code, HM and HA are both treated as HM-like zoned. -- Damien Le Moal Western Digital Research