summaryrefslogtreecommitdiffstats
path: root/block/blk-mq-sched.c
diff options
context:
space:
mode:
authorSagi Grimberg <sagi@grimberg.me>2017-02-27 18:04:39 +0100
committerJens Axboe <axboe@fb.com>2017-03-02 16:56:04 +0100
commit415b806de5576b656f3ff94366589af9a161d0c8 (patch)
treedda8a6c89aa8d332990a5c9259888725badf7299 /block/blk-mq-sched.c
parentnvme: allocate nvme_queue in correct node (diff)
downloadlinux-415b806de5576b656f3ff94366589af9a161d0c8.tar.xz
linux-415b806de5576b656f3ff94366589af9a161d0c8.zip
blk-mq-sched: Allocate sched reserved tags as specified in the original queue tagset
Signed-off-by: Sagi Grimberg <sagi@grimberg.me> Modified by me to also check at driver tag allocation time if the original request was reserved, so we can be sure to allocate a properly reserved tag at that point in time, too. Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block/blk-mq-sched.c')
-rw-r--r--block/blk-mq-sched.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/block/blk-mq-sched.c b/block/blk-mq-sched.c
index 98c7b061781e..46ca965fff5c 100644
--- a/block/blk-mq-sched.c
+++ b/block/blk-mq-sched.c
@@ -454,7 +454,8 @@ int blk_mq_sched_setup(struct request_queue *q)
*/
ret = 0;
queue_for_each_hw_ctx(q, hctx, i) {
- hctx->sched_tags = blk_mq_alloc_rq_map(set, i, q->nr_requests, 0);
+ hctx->sched_tags = blk_mq_alloc_rq_map(set, i,
+ q->nr_requests, set->reserved_tags);
if (!hctx->sched_tags) {
ret = -ENOMEM;
break;