block: don't call blk_mq_quiesce_queue() after queue is frozen
authorMing Lei <ming.lei@redhat.com>
Mon, 1 May 2017 23:28:02 +0000 (07:28 +0800)
committerJens Axboe <axboe@fb.com>
Tue, 2 May 2017 17:33:08 +0000 (11:33 -0600)
After queue is frozen, no request in this queue can be in use at all, so
there can't be any .queue_rq() running on this queue.  It isn't
necessary to call blk_mq_quiesce_queue() any more, so remove it in both
elevator_switch_mq() and blk_mq_update_nr_requests().

Cc: Bart Van Assche <bart.vanassche@sandisk.com>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Fixed up the description a bit.

Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-mq.c
block/elevator.c

index b81e4a7cd7f25c0167b826dd65a0788085eef98f..e339247a2570cabcd659cc7ba8c4d36df29d5674 100644 (file)
@@ -2609,7 +2609,6 @@ int blk_mq_update_nr_requests(struct request_queue *q, unsigned int nr)
                return -EINVAL;
 
        blk_mq_freeze_queue(q);
-       blk_mq_quiesce_queue(q);
 
        ret = 0;
        queue_for_each_hw_ctx(q, hctx, i) {
@@ -2635,7 +2634,6 @@ int blk_mq_update_nr_requests(struct request_queue *q, unsigned int nr)
                q->nr_requests = nr;
 
        blk_mq_unfreeze_queue(q);
-       blk_mq_start_stopped_hw_queues(q, true);
 
        return ret;
 }
index 80f4854510961ad1b7c46bf1b9f816207bb08ea6..ab726a5c0bf6eaa3039a472a65dd8fb3435f606b 100644 (file)
@@ -950,7 +950,6 @@ static int elevator_switch_mq(struct request_queue *q,
        int ret;
 
        blk_mq_freeze_queue(q);
-       blk_mq_quiesce_queue(q);
 
        if (q->elevator) {
                if (q->elevator->registered)
@@ -978,9 +977,7 @@ static int elevator_switch_mq(struct request_queue *q,
 
 out:
        blk_mq_unfreeze_queue(q);
-       blk_mq_start_stopped_hw_queues(q, true);
        return ret;
-
 }
 
 /*