diff options
| author | Christoph Hellwig <hch@lst.de> | 2019-03-13 13:55:08 -0400 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2019-03-13 14:57:34 -0400 |
| commit | 9f0916ab932f676c042d4592a235a895847484f2 (patch) | |
| tree | fc3c1b34a3926a513b423538dcf2de0341c11a1d /drivers | |
| parent | 2631857160ecbea04e54423f5053133fe2b6ea45 (diff) | |
nvme: add proper write zeroes setup for the multipath device
Add a gendisk argument to nvme_config_write_zeroes so that the call to
nvme_update_disk_info for the multipath device node updates the
proper request_queue.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Keith Busch <keith.busch@intel.com>
Reviewed-by: Max Gurtovoy <maxg@mellanox.com>
Tested-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/nvme/host/core.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 6a57ece7d76b..470601980794 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c | |||
| @@ -1526,7 +1526,7 @@ static void nvme_config_discard(struct gendisk *disk, struct nvme_ns *ns) | |||
| 1526 | blk_queue_max_write_zeroes_sectors(queue, UINT_MAX); | 1526 | blk_queue_max_write_zeroes_sectors(queue, UINT_MAX); |
| 1527 | } | 1527 | } |
| 1528 | 1528 | ||
| 1529 | static inline void nvme_config_write_zeroes(struct nvme_ns *ns) | 1529 | static void nvme_config_write_zeroes(struct gendisk *disk, struct nvme_ns *ns) |
| 1530 | { | 1530 | { |
| 1531 | u32 max_sectors; | 1531 | u32 max_sectors; |
| 1532 | unsigned short bs = 1 << ns->lba_shift; | 1532 | unsigned short bs = 1 << ns->lba_shift; |
| @@ -1549,7 +1549,7 @@ static inline void nvme_config_write_zeroes(struct nvme_ns *ns) | |||
| 1549 | else | 1549 | else |
| 1550 | max_sectors = ((u32)(ns->ctrl->max_hw_sectors + 1) * bs) >> 9; | 1550 | max_sectors = ((u32)(ns->ctrl->max_hw_sectors + 1) * bs) >> 9; |
| 1551 | 1551 | ||
| 1552 | blk_queue_max_write_zeroes_sectors(ns->queue, max_sectors); | 1552 | blk_queue_max_write_zeroes_sectors(disk->queue, max_sectors); |
| 1553 | } | 1553 | } |
| 1554 | 1554 | ||
| 1555 | static void nvme_report_ns_ids(struct nvme_ctrl *ctrl, unsigned int nsid, | 1555 | static void nvme_report_ns_ids(struct nvme_ctrl *ctrl, unsigned int nsid, |
| @@ -1607,7 +1607,7 @@ static void nvme_update_disk_info(struct gendisk *disk, | |||
| 1607 | set_capacity(disk, capacity); | 1607 | set_capacity(disk, capacity); |
| 1608 | 1608 | ||
| 1609 | nvme_config_discard(disk, ns); | 1609 | nvme_config_discard(disk, ns); |
| 1610 | nvme_config_write_zeroes(ns); | 1610 | nvme_config_write_zeroes(disk, ns); |
| 1611 | 1611 | ||
| 1612 | if (id->nsattr & (1 << 0)) | 1612 | if (id->nsattr & (1 << 0)) |
| 1613 | set_disk_ro(disk, true); | 1613 | set_disk_ro(disk, true); |
