summaryrefslogtreecommitdiffstats
path: root/block/blk-flush.c
diff options
context:
space:
mode:
authorMing Lei <ming.lei@canonical.com>2014-09-25 11:23:40 -0400
committerJens Axboe <axboe@fb.com>2014-09-25 17:22:35 -0400
commitf355265571440a7db16e784b6edf4e7d26971a03 (patch)
tree79b20c37c734b5932dcecc9e85850847b0a69855 /block/blk-flush.c
parent1bcb1eada4f11a713cbe586d1b5a5d93a48277cb (diff)
block: introduce blk_init_flush and its pair
These two temporary functions are introduced for holding flush initialization and de-initialization, so that we can introduce 'flush queue' easier in the following patch. And once 'flush queue' and its allocation/free functions are ready, they will be removed for sake of code readability. Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Ming Lei <ming.lei@canonical.com> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block/blk-flush.c')
-rw-r--r--block/blk-flush.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/block/blk-flush.c b/block/blk-flush.c
index 55028a707927..c72ab32fd8eb 100644
--- a/block/blk-flush.c
+++ b/block/blk-flush.c
@@ -472,7 +472,7 @@ int blkdev_issue_flush(struct block_device *bdev, gfp_t gfp_mask,
472} 472}
473EXPORT_SYMBOL(blkdev_issue_flush); 473EXPORT_SYMBOL(blkdev_issue_flush);
474 474
475int blk_mq_init_flush(struct request_queue *q) 475static int blk_mq_init_flush(struct request_queue *q)
476{ 476{
477 struct blk_mq_tag_set *set = q->tag_set; 477 struct blk_mq_tag_set *set = q->tag_set;
478 478
@@ -485,3 +485,20 @@ int blk_mq_init_flush(struct request_queue *q)
485 return -ENOMEM; 485 return -ENOMEM;
486 return 0; 486 return 0;
487} 487}
488
489int blk_init_flush(struct request_queue *q)
490{
491 if (q->mq_ops)
492 return blk_mq_init_flush(q);
493
494 q->flush_rq = kzalloc(sizeof(struct request), GFP_KERNEL);
495 if (!q->flush_rq)
496 return -ENOMEM;
497
498 return 0;
499}
500
501void blk_exit_flush(struct request_queue *q)
502{
503 kfree(q->flush_rq);
504}