summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamien Le Moal <dlemoal@kernel.org>2023-07-03 04:48:09 +0200
committerMartin K. Petersen <martin.petersen@oracle.com>2023-07-06 03:58:10 +0200
commitd226b0a2b683e27fce060669dc7cb8d6917b785a (patch)
treead4b7e08cee9901008cc5d686a8d728abf05c2a9
parentscsi: sd_zbc: Set zone limits before revalidating zones (diff)
downloadlinux-d226b0a2b683e27fce060669dc7cb8d6917b785a.tar.xz
linux-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.c9
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)