nvmet: don't look at the request_queue in nvmet_bdev_zone_mgmt_emulate_all
authorChristoph Hellwig <hch@lst.de>
Tue, 27 Sep 2022 08:24:07 +0000 (10:24 +0200)
committerChristoph Hellwig <hch@lst.de>
Tue, 27 Sep 2022 16:51:39 +0000 (18:51 +0200)
nvmet is a consumer of the block layer and should not directly look at
the request_queue.  Just use the NUMA node ID from the gendisk instead of
the request_queue.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Keith Busch <kbusch@kernel.org>
drivers/nvme/target/zns.c

index c7ef69f..7e89056 100644 (file)
@@ -387,7 +387,6 @@ static u16 nvmet_bdev_zone_mgmt_emulate_all(struct nvmet_req *req)
 {
        struct block_device *bdev = req->ns->bdev;
        unsigned int nr_zones = bdev_nr_zones(bdev);
-       struct request_queue *q = bdev_get_queue(bdev);
        struct bio *bio = NULL;
        sector_t sector = 0;
        int ret;
@@ -396,7 +395,7 @@ static u16 nvmet_bdev_zone_mgmt_emulate_all(struct nvmet_req *req)
        };
 
        d.zbitmap = kcalloc_node(BITS_TO_LONGS(nr_zones), sizeof(*(d.zbitmap)),
-                                GFP_NOIO, q->node);
+                                GFP_NOIO, bdev->bd_disk->node_id);
        if (!d.zbitmap) {
                ret = -ENOMEM;
                goto out;