diff options
author | Sagi Grimberg <sagi@grimberg.me> | 2018-11-02 21:22:13 +0300 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2018-11-09 16:14:47 +0300 |
commit | 8f676b8508c250bbe255096522fdefb73f1ea0b9 (patch) | |
tree | 4de2434de7617e53fe8b333d47997b6cb6ad7a09 /drivers/nvme/host/core.c | |
parent | 21d3bbdd4c342f16eac8d70893e45cdfa3381a1e (diff) | |
download | linux-8f676b8508c250bbe255096522fdefb73f1ea0b9.tar.xz |
nvme: make sure ns head inherits underlying device limits
Whenever we update ns_head info, we need to make sure it is still
compatible with all underlying backing devices because although nvme
multipath doesn't have any explicit use of these limits, other devices
can still be stacked on top of it which may rely on the underlying limits.
Start with unlimited stacking limits, and every info update iterate over
siblings and adjust queue limits.
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/nvme/host/core.c')
-rw-r--r-- | drivers/nvme/host/core.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 2e65be8b1387..559d567693b8 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -1519,8 +1519,10 @@ static void __nvme_revalidate_disk(struct gendisk *disk, struct nvme_id_ns *id) if (ns->ndev) nvme_nvm_update_nvm_info(ns); #ifdef CONFIG_NVME_MULTIPATH - if (ns->head->disk) + if (ns->head->disk) { nvme_update_disk_info(ns->head->disk, ns, id); + blk_queue_stack_limits(ns->head->disk->queue, ns->queue); + } #endif } |