nvme: set the chunk size before freezing the queue
authorChristoph Hellwig <hch@lst.de>
Thu, 2 Nov 2017 18:28:55 +0000 (21:28 +0300)
committerJens Axboe <axboe@kernel.dk>
Sat, 11 Nov 2017 02:53:25 +0000 (19:53 -0700)
We don't need a frozen queue to update the chunk_size, which just is a
hint, and moving it a little earlier will allow for some better code
reuse with the multipath code.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/nvme/host/core.c

index 551ec5df6a97f119c494237df8c220ea8e4ee880..a4be843334baf7d24a4f51964c59b800c36f7214 100644 (file)
@@ -1184,12 +1184,13 @@ static void __nvme_revalidate_disk(struct gendisk *disk, struct nvme_id_ns *id)
        if (ctrl->nr_streams && ns->sws && ns->sgs)
                stream_alignment = ns->sws * ns->sgs;
 
+       if (ns->noiob)
+               nvme_set_chunk_size(ns);
+
        blk_mq_freeze_queue(disk->queue);
        blk_integrity_unregister(disk);
 
        blk_queue_logical_block_size(ns->queue, bs);
-       if (ns->noiob)
-               nvme_set_chunk_size(ns);
        if (ns->ms && !ns->ext &&
            (ctrl->ops->flags & NVME_F_METADATA_SUPPORTED))
                nvme_init_integrity(disk, ns->ms, ns->pi_type);