]> git.baikalelectronics.ru Git - kernel.git/commitdiff
block: Initialize bio priority earlier
authorJan Kara <jack@suse.cz>
Thu, 23 Jun 2022 07:48:33 +0000 (09:48 +0200)
committerJens Axboe <axboe@kernel.dk>
Mon, 27 Jun 2022 12:29:12 +0000 (06:29 -0600)
Bio's IO priority needs to be initialized before we try to merge the bio
with other bios. Otherwise we could merge bios which would otherwise
receive different IO priorities leading to possible QoS issues.

Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20220623074840.5960-8-jack@suse.cz
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-mq.c

index 4c4944b6f520d6b9e83ed6db691fd419b97cf2d4..c0ec1938feee06c830f91409d8944296a1748d2c 100644 (file)
@@ -2814,6 +2814,8 @@ void blk_mq_submit_bio(struct bio *bio)
        if (!bio_integrity_prep(bio))
                return;
 
+       bio_set_ioprio(bio);
+
        rq = blk_mq_get_cached_request(q, plug, &bio, nr_segs);
        if (!rq) {
                if (!bio)
@@ -2825,8 +2827,6 @@ void blk_mq_submit_bio(struct bio *bio)
 
        trace_block_getrq(bio);
 
-       bio_set_ioprio(bio);
-
        rq_qos_track(q, rq, bio);
 
        blk_mq_bio_to_request(rq, bio, nr_segs);