]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/blobdiff - block/blk-flush.c
block: introduce blk_init_flush and its pair
[mirror_ubuntu-eoan-kernel.git] / block / blk-flush.c
index 55028a7079270afe6e1958d2bfd3635c23252755..c72ab32fd8eb8ed95f184850bdeda21572930331 100644 (file)
@@ -472,7 +472,7 @@ int blkdev_issue_flush(struct block_device *bdev, gfp_t gfp_mask,
 }
 EXPORT_SYMBOL(blkdev_issue_flush);
 
-int blk_mq_init_flush(struct request_queue *q)
+static int blk_mq_init_flush(struct request_queue *q)
 {
        struct blk_mq_tag_set *set = q->tag_set;
 
@@ -485,3 +485,20 @@ int blk_mq_init_flush(struct request_queue *q)
                return -ENOMEM;
        return 0;
 }
+
+int blk_init_flush(struct request_queue *q)
+{
+       if (q->mq_ops)
+               return blk_mq_init_flush(q);
+
+       q->flush_rq = kzalloc(sizeof(struct request), GFP_KERNEL);
+       if (!q->flush_rq)
+               return -ENOMEM;
+
+       return 0;
+}
+
+void blk_exit_flush(struct request_queue *q)
+{
+       kfree(q->flush_rq);
+}