Merge tag 'x86_cache_for_6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
[linux-block.git] / block / blk-core.c
index 42926e6cb83c8e328cfd1e904989430737cc9326..00c74330fa92c221422a629361607068a65eda99 100644 (file)
@@ -263,13 +263,7 @@ static void blk_free_queue_rcu(struct rcu_head *rcu_head)
 
 static void blk_free_queue(struct request_queue *q)
 {
-       if (q->poll_stat)
-               blk_stat_remove_callback(q, q->poll_cb);
-       blk_stat_free_callback(q->poll_cb);
-
        blk_free_queue_stats(q->stats);
-       kfree(q->poll_stat);
-
        if (queue_is_mq(q))
                blk_mq_release(q);
 
@@ -593,14 +587,14 @@ static inline blk_status_t blk_check_zone_append(struct request_queue *q,
 
 static void __submit_bio(struct bio *bio)
 {
-       struct gendisk *disk = bio->bi_bdev->bd_disk;
-
        if (unlikely(!blk_crypto_bio_prep(&bio)))
                return;
 
-       if (!disk->fops->submit_bio) {
+       if (!bio->bi_bdev->bd_has_submit_bio) {
                blk_mq_submit_bio(bio);
        } else if (likely(bio_queue_enter(bio) == 0)) {
+               struct gendisk *disk = bio->bi_bdev->bd_disk;
+
                disk->fops->submit_bio(bio);
                blk_queue_exit(disk->queue);
        }
@@ -704,7 +698,7 @@ void submit_bio_noacct_nocheck(struct bio *bio)
         */
        if (current->bio_list)
                bio_list_add(&current->bio_list[0], bio);
-       else if (!bio->bi_bdev->bd_disk->fops->submit_bio)
+       else if (!bio->bi_bdev->bd_has_submit_bio)
                __submit_bio_noacct_mq(bio);
        else
                __submit_bio_noacct(bio);
@@ -830,9 +824,6 @@ EXPORT_SYMBOL(submit_bio_noacct);
  */
 void submit_bio(struct bio *bio)
 {
-       if (blkcg_punt_bio_submit(bio))
-               return;
-
        if (bio_op(bio) == REQ_OP_READ) {
                task_io_account_read(bio->bi_iter.bi_size);
                count_vm_events(PGPGIN, bio_sectors(bio));