diff options
author | Jens Axboe <axboe@kernel.dk> | 2018-05-09 13:28:50 -0600 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2018-05-10 11:27:12 -0600 |
commit | 17a511993225ff7c1e2af182c0720bb4d31c7d3a (patch) | |
tree | 55a71e72641381c8864b899857442eea55edf88b /block | |
parent | 18e5a57d79878b205d39b2f160082d9098e9bfd6 (diff) | |
download | linux-17a511993225ff7c1e2af182c0720bb4d31c7d3a.tar.bz2 |
blk-mq: don't call into depth limiting for reserved tags
It's not useful, they are internal and/or error handling recovery
commands.
Acked-by: Paolo Valente <paolo.valente@linaro.org>
Reviewed-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block')
-rw-r--r-- | block/blk-mq.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/block/blk-mq.c b/block/blk-mq.c index 4e9d83594cca..64630caaf27e 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -360,9 +360,11 @@ static struct request *blk_mq_get_request(struct request_queue *q, /* * Flush requests are special and go directly to the - * dispatch list. + * dispatch list. Don't include reserved tags in the + * limiting, as it isn't useful. */ - if (!op_is_flush(op) && e->type->ops.mq.limit_depth) + if (!op_is_flush(op) && e->type->ops.mq.limit_depth && + !(data->flags & BLK_MQ_REQ_RESERVED)) e->type->ops.mq.limit_depth(op, data); } |