block: move submit_bio_checks() into submit_bio_noacct
authorMing Lei <ming.lei@redhat.com>
Wed, 16 Feb 2022 04:45:07 +0000 (12:45 +0800)
committerJens Axboe <axboe@kernel.dk>
Thu, 17 Feb 2022 02:42:27 +0000 (19:42 -0700)
It is more clean & readable to check bio when starting to submit it,
instead of just before calling ->submit_bio() or blk_mq_submit_bio().

Also it provides us chance to optimize bio submission without checking
bio.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Link: https://lore.kernel.org/r/20220216044514.2903784-2-ming.lei@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-core.c

index 5a4a590..d4a0236 100644 (file)
@@ -797,9 +797,6 @@ static void __submit_bio(struct bio *bio)
 {
        struct gendisk *disk = bio->bi_bdev->bd_disk;
 
-       if (unlikely(!submit_bio_checks(bio)))
-               return;
-
        if (!disk->fops->submit_bio)
                blk_mq_submit_bio(bio);
        else
@@ -893,6 +890,9 @@ static void __submit_bio_noacct_mq(struct bio *bio)
  */
 void submit_bio_noacct(struct bio *bio)
 {
+       if (unlikely(!submit_bio_checks(bio)))
+               return;
+
        /*
         * We only want one ->submit_bio to be active at a time, else stack
         * usage with stacked devices could be a problem.  Use current->bio_list