Commit 037cebb8 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe

blk-mq: streamline blk_mq_get_request

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 6af54051
...@@ -302,13 +302,17 @@ static struct request *blk_mq_get_request(struct request_queue *q, ...@@ -302,13 +302,17 @@ static struct request *blk_mq_get_request(struct request_queue *q,
rq = e->type->ops.mq.get_request(q, op, data); rq = e->type->ops.mq.get_request(q, op, data);
if (rq) if (rq)
rq->rq_flags |= RQF_QUEUED; rq->rq_flags |= RQF_QUEUED;
} else goto allocated;
rq = __blk_mq_alloc_request(data, op); }
} else { }
rq = __blk_mq_alloc_request(data, op); rq = __blk_mq_alloc_request(data, op);
allocated:
if (!rq) {
blk_queue_exit(q);
return NULL;
} }
if (rq) {
if (!op_is_flush(op)) { if (!op_is_flush(op)) {
rq->elv.icq = NULL; rq->elv.icq = NULL;
if (e && e->type->icq_cache) if (e && e->type->icq_cache)
...@@ -316,10 +320,6 @@ static struct request *blk_mq_get_request(struct request_queue *q, ...@@ -316,10 +320,6 @@ static struct request *blk_mq_get_request(struct request_queue *q,
} }
data->hctx->queued++; data->hctx->queued++;
return rq; return rq;
}
blk_queue_exit(q);
return NULL;
} }
struct request *blk_mq_alloc_request(struct request_queue *q, int rw, struct request *blk_mq_alloc_request(struct request_queue *q, int rw,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment