blk-mq-sched.c (a7e7388dced47a10ca13ae95ca975ea2830f196b) | blk-mq-sched.c (63064be150e4b1ba1e4af594ef5aa81adf21a52d) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * blk-mq scheduling framework 4 * 5 * Copyright (C) 2016 Jens Axboe 6 */ 7#include <linux/kernel.h> 8#include <linux/module.h> --- 505 unchanged lines hidden (view full) --- 514 out: 515 percpu_ref_put(&q->q_usage_counter); 516} 517 518static int blk_mq_sched_alloc_map_and_rqs(struct request_queue *q, 519 struct blk_mq_hw_ctx *hctx, 520 unsigned int hctx_idx) 521{ | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * blk-mq scheduling framework 4 * 5 * Copyright (C) 2016 Jens Axboe 6 */ 7#include <linux/kernel.h> 8#include <linux/module.h> --- 505 unchanged lines hidden (view full) --- 514 out: 515 percpu_ref_put(&q->q_usage_counter); 516} 517 518static int blk_mq_sched_alloc_map_and_rqs(struct request_queue *q, 519 struct blk_mq_hw_ctx *hctx, 520 unsigned int hctx_idx) 521{ |
522 struct blk_mq_tag_set *set = q->tag_set; 523 int ret; | 522 hctx->sched_tags = blk_mq_alloc_map_and_rqs(q->tag_set, hctx_idx, 523 q->nr_requests); |
524 | 524 |
525 hctx->sched_tags = blk_mq_alloc_rq_map(set, hctx_idx, q->nr_requests, 526 set->reserved_tags, set->flags); | |
527 if (!hctx->sched_tags) 528 return -ENOMEM; | 525 if (!hctx->sched_tags) 526 return -ENOMEM; |
529 530 ret = blk_mq_alloc_rqs(set, hctx->sched_tags, hctx_idx, q->nr_requests); 531 if (ret) { 532 blk_mq_free_rq_map(hctx->sched_tags, set->flags); 533 hctx->sched_tags = NULL; 534 } 535 536 return ret; | 527 return 0; |
537} 538 539/* called in queue's release handler, tagset has gone away */ 540static void blk_mq_sched_tags_teardown(struct request_queue *q) 541{ 542 struct blk_mq_hw_ctx *hctx; 543 int i; 544 --- 146 unchanged lines hidden --- | 528} 529 530/* called in queue's release handler, tagset has gone away */ 531static void blk_mq_sched_tags_teardown(struct request_queue *q) 532{ 533 struct blk_mq_hw_ctx *hctx; 534 int i; 535 --- 146 unchanged lines hidden --- |