]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
nvme-mpath: remove I/O polling support
authorChristoph Hellwig <hch@lst.de>
Sun, 2 Dec 2018 16:46:25 +0000 (17:46 +0100)
committerJens Axboe <axboe@kernel.dk>
Tue, 4 Dec 2018 18:38:18 +0000 (11:38 -0700)
The ->poll_fn has been stale for a while, as a lot of places check for mq
ops.  But there is no real point in it anyway, as we don't even use
the multipath code for subsystems without multiple ports, which is usually
what we do high performance I/O to.  If it really becomes an issue we
should rework the nvme code to also skip the multipath code for any
private namespace, even if that could mean some trouble when rescanning.

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

index ffebdd0ae34befbb2762fda384199fb667cbff11..ec310b1b926736d58222240adbbe6cc72ab1e8f8 100644 (file)
@@ -220,21 +220,6 @@ static blk_qc_t nvme_ns_head_make_request(struct request_queue *q,
        return ret;
 }
 
-static int nvme_ns_head_poll(struct request_queue *q, blk_qc_t qc, bool spin)
-{
-       struct nvme_ns_head *head = q->queuedata;
-       struct nvme_ns *ns;
-       int found = 0;
-       int srcu_idx;
-
-       srcu_idx = srcu_read_lock(&head->srcu);
-       ns = srcu_dereference(head->current_path[numa_node_id()], &head->srcu);
-       if (likely(ns && nvme_path_is_optimized(ns)))
-               found = ns->queue->poll_fn(q, qc, spin);
-       srcu_read_unlock(&head->srcu, srcu_idx);
-       return found;
-}
-
 static void nvme_requeue_work(struct work_struct *work)
 {
        struct nvme_ns_head *head =
@@ -281,7 +266,6 @@ int nvme_mpath_alloc_disk(struct nvme_ctrl *ctrl, struct nvme_ns_head *head)
                goto out;
        q->queuedata = head;
        blk_queue_make_request(q, nvme_ns_head_make_request);
-       q->poll_fn = nvme_ns_head_poll;
        blk_queue_flag_set(QUEUE_FLAG_NONROT, q);
        /* set to a default value for 512 until disk is validated */
        blk_queue_logical_block_size(q, 512);