]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
block: remove direct_make_request
authorChristoph Hellwig <hch@lst.de>
Wed, 1 Jul 2020 08:59:47 +0000 (10:59 +0200)
committerJens Axboe <axboe@kernel.dk>
Wed, 1 Jul 2020 13:27:24 +0000 (07:27 -0600)
Now that submit_bio_noacct has a decent blk-mq fast path there is no
more need for this bypass.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-core.c
drivers/md/dm.c
drivers/nvme/host/multipath.c
include/linux/blkdev.h

index 2ff166f0d24ee3861933356656a08ff4a6b139ec..bf882b8d84450c5a78da0c07d69959761573cf53 100644 (file)
@@ -1211,34 +1211,6 @@ blk_qc_t submit_bio_noacct(struct bio *bio)
 }
 EXPORT_SYMBOL(submit_bio_noacct);
 
-/**
- * direct_make_request - hand a buffer directly to its device driver for I/O
- * @bio:  The bio describing the location in memory and on the device.
- *
- * This function behaves like submit_bio_noacct(), but does not protect
- * against recursion.  Must only be used if the called driver is known
- * to be blk-mq based.
- */
-blk_qc_t direct_make_request(struct bio *bio)
-{
-       struct gendisk *disk = bio->bi_disk;
-
-       if (WARN_ON_ONCE(!disk->queue->mq_ops)) {
-               bio_io_error(bio);
-               return BLK_QC_T_NONE;
-       }
-       if (!submit_bio_checks(bio))
-               return BLK_QC_T_NONE;
-       if (unlikely(bio_queue_enter(bio)))
-               return BLK_QC_T_NONE;
-       if (!blk_crypto_bio_prep(&bio)) {
-               blk_queue_exit(disk->queue);
-               return BLK_QC_T_NONE;
-       }
-       return blk_mq_submit_bio(bio);
-}
-EXPORT_SYMBOL_GPL(direct_make_request);
-
 /**
  * submit_bio - submit a bio to the block device layer for I/O
  * @bio: The &struct bio which describes the I/O
index b32b539dbace5638ecccdf69cd4806f480a8bd5d..2cb33896198c4cb5ca9537620d9d36c8966a8b5c 100644 (file)
@@ -1302,10 +1302,7 @@ static blk_qc_t __map_bio(struct dm_target_io *tio)
                /* the bio has been remapped so dispatch it */
                trace_block_bio_remap(clone->bi_disk->queue, clone,
                                      bio_dev(io->orig_bio), sector);
-               if (md->type == DM_TYPE_NVME_BIO_BASED)
-                       ret = direct_make_request(clone);
-               else
-                       ret = submit_bio_noacct(clone);
+               ret = submit_bio_noacct(clone);
                break;
        case DM_MAPIO_KILL:
                free_tio(tio);
index f07fa47c251d9d5e8ea6f861990c53df7c7e2171..a986ac52c4cc7fc2c19dc2b7b1ceecbf85698843 100644 (file)
@@ -314,7 +314,7 @@ blk_qc_t nvme_ns_head_submit_bio(struct bio *bio)
                trace_block_bio_remap(bio->bi_disk->queue, bio,
                                      disk_devt(ns->head->disk),
                                      bio->bi_iter.bi_sector);
-               ret = direct_make_request(bio);
+               ret = submit_bio_noacct(bio);
        } else if (nvme_available_path(head)) {
                dev_warn_ratelimited(dev, "no usable path - requeuing I/O\n");
 
index b73cfa6a5141dfe0dd278ddff9dc84791f9df4f6..1cc913ffdbe21e9e8783251fb51029802cd7fd66 100644 (file)
@@ -853,7 +853,6 @@ static inline void rq_flush_dcache_pages(struct request *rq)
 extern int blk_register_queue(struct gendisk *disk);
 extern void blk_unregister_queue(struct gendisk *disk);
 blk_qc_t submit_bio_noacct(struct bio *bio);
-extern blk_qc_t direct_make_request(struct bio *bio);
 extern void blk_rq_init(struct request_queue *q, struct request *rq);
 extern void blk_put_request(struct request *);
 extern struct request *blk_get_request(struct request_queue *, unsigned int op,