diff options
author | Christoph Hellwig <hch@lst.de> | 2017-06-16 12:15:23 -0400 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2017-06-18 12:08:55 -0400 |
commit | 037cebb85b94027a52be69d72068e6f6d0dca3a3 (patch) | |
tree | 414bdaa60c1473c8c0f559f53b8570dffba76239 | |
parent | 6af54051a07041d8d4e36b1b01136a0db4eb7e23 (diff) |
blk-mq: streamline blk_mq_get_request
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r-- | block/blk-mq.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/block/blk-mq.c b/block/blk-mq.c index 0b17351fccfc..e056725679a8 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c | |||
@@ -302,24 +302,24 @@ static struct request *blk_mq_get_request(struct request_queue *q, | |||
302 | rq = e->type->ops.mq.get_request(q, op, data); | 302 | rq = e->type->ops.mq.get_request(q, op, data); |
303 | if (rq) | 303 | if (rq) |
304 | rq->rq_flags |= RQF_QUEUED; | 304 | rq->rq_flags |= RQF_QUEUED; |
305 | } else | 305 | goto allocated; |
306 | rq = __blk_mq_alloc_request(data, op); | 306 | } |
307 | } else { | ||
308 | rq = __blk_mq_alloc_request(data, op); | ||
309 | } | 307 | } |
310 | 308 | ||
311 | if (rq) { | 309 | rq = __blk_mq_alloc_request(data, op); |
312 | if (!op_is_flush(op)) { | 310 | allocated: |
313 | rq->elv.icq = NULL; | 311 | if (!rq) { |
314 | if (e && e->type->icq_cache) | 312 | blk_queue_exit(q); |
315 | blk_mq_sched_assign_ioc(q, rq, bio); | 313 | return NULL; |
316 | } | ||
317 | data->hctx->queued++; | ||
318 | return rq; | ||
319 | } | 314 | } |
320 | 315 | ||
321 | blk_queue_exit(q); | 316 | if (!op_is_flush(op)) { |
322 | return NULL; | 317 | rq->elv.icq = NULL; |
318 | if (e && e->type->icq_cache) | ||
319 | blk_mq_sched_assign_ioc(q, rq, bio); | ||
320 | } | ||
321 | data->hctx->queued++; | ||
322 | return rq; | ||
323 | } | 323 | } |
324 | 324 | ||
325 | struct request *blk_mq_alloc_request(struct request_queue *q, int rw, | 325 | struct request *blk_mq_alloc_request(struct request_queue *q, int rw, |