diff options
author | Ming Lei <ming.lei@redhat.com> | 2017-05-02 07:28:02 +0800 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2017-05-02 11:33:08 -0600 |
commit | 7a148c2fcff83309748bfaafe121aa85b724624f (patch) | |
tree | 931f0857f3019dedc0282ceeb036af274f42b77e /block | |
parent | d6296d39e90c9075bc2fc15f1e86dac44930d4b5 (diff) | |
download | linux-stable-7a148c2fcff83309748bfaafe121aa85b724624f.tar.gz linux-stable-7a148c2fcff83309748bfaafe121aa85b724624f.tar.bz2 linux-stable-7a148c2fcff83309748bfaafe121aa85b724624f.zip |
block: don't call blk_mq_quiesce_queue() after queue is frozen
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>
Diffstat (limited to 'block')
-rw-r--r-- | block/blk-mq.c | 2 | ||||
-rw-r--r-- | block/elevator.c | 3 |
2 files changed, 0 insertions, 5 deletions
diff --git a/block/blk-mq.c b/block/blk-mq.c index b81e4a7cd7f2..e339247a2570 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -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; } diff --git a/block/elevator.c b/block/elevator.c index 80f485451096..ab726a5c0bf6 100644 --- a/block/elevator.c +++ b/block/elevator.c @@ -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; - } /* |