]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
nvme-multipath: use atomic queue limits API for stacking limits
authorChristoph Hellwig <hch@lst.de>
Mon, 4 Mar 2024 14:05:00 +0000 (07:05 -0700)
committerKeith Busch <kbusch@kernel.org>
Mon, 4 Mar 2024 16:24:57 +0000 (08:24 -0800)
Switch to the queue_limits_* helpers to stack the bdev limits, which also
includes updating the readahead settings.

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

index 6413ce24fb4b1c4e0ec948967b6545b37830d062..3f985b93a19f986fcaad42483353abe1674dbda8 100644 (file)
@@ -2188,6 +2188,8 @@ static int nvme_update_ns_info(struct nvme_ns *ns, struct nvme_ns_info *info)
        }
 
        if (!ret && nvme_ns_head_multipath(ns->head)) {
+               struct queue_limits lim;
+
                blk_mq_freeze_queue(ns->head->disk->queue);
                if (unsupported)
                        ns->head->disk->flags |= GENHD_FL_HIDDEN;
@@ -2196,10 +2198,11 @@ static int nvme_update_ns_info(struct nvme_ns *ns, struct nvme_ns_info *info)
                set_capacity_and_notify(ns->head->disk, get_capacity(ns->disk));
                set_disk_ro(ns->head->disk, nvme_ns_is_readonly(ns, info));
                nvme_mpath_revalidate_paths(ns);
-               blk_stack_limits(&ns->head->disk->queue->limits,
-                                &ns->queue->limits, 0);
 
-               disk_update_readahead(ns->head->disk);
+               lim = queue_limits_start_update(ns->head->disk->queue);
+               queue_limits_stack_bdev(&lim, ns->disk->part0, 0,
+                                       ns->head->disk->disk_name);
+               ret = queue_limits_commit_update(ns->head->disk->queue, &lim);
                blk_mq_unfreeze_queue(ns->head->disk->queue);
        }