diff options
author | Damien Le Moal <dlemoal@kernel.org> | 2023-07-03 11:48:09 +0900 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2023-07-05 21:58:10 -0400 |
commit | d226b0a2b683e27fce060669dc7cb8d6917b785a (patch) | |
tree | ad4b7e08cee9901008cc5d686a8d728abf05c2a9 | |
parent | f79846ca2f04c9744627c24034d675c88f0da3a0 (diff) | |
download | linux-stable-d226b0a2b683e27fce060669dc7cb8d6917b785a.tar.gz linux-stable-d226b0a2b683e27fce060669dc7cb8d6917b785a.tar.bz2 linux-stable-d226b0a2b683e27fce060669dc7cb8d6917b785a.zip |
scsi: nvme: zns: Set zone limits before revalidating zones
In nvme_revalidate_zones(), execute blk_queue_chunk_sectors() and
blk_queue_max_zone_append_sectors() to respectively set a ZNS namespace
zone size and maximum zone append sector limit before executing
blk_revalidate_disk_zones(). This is to allow the block layer zone
reavlidation to check these device characteristics prior to checking all
zones of the device.
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Link: https://lore.kernel.org/r/20230703024812.76778-3-dlemoal@kernel.org
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r-- | drivers/nvme/host/zns.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/nvme/host/zns.c b/drivers/nvme/host/zns.c index 12316ab51bda..ec8557810c21 100644 --- a/drivers/nvme/host/zns.c +++ b/drivers/nvme/host/zns.c @@ -10,12 +10,11 @@ int nvme_revalidate_zones(struct nvme_ns *ns) { struct request_queue *q = ns->queue; - int ret; - ret = blk_revalidate_disk_zones(ns->disk, NULL); - if (!ret) - blk_queue_max_zone_append_sectors(q, ns->ctrl->max_zone_append); - return ret; + blk_queue_chunk_sectors(q, ns->zsze); + blk_queue_max_zone_append_sectors(q, ns->ctrl->max_zone_append); + + return blk_revalidate_disk_zones(ns->disk, NULL); } static int nvme_set_max_append(struct nvme_ctrl *ctrl) |