diff --git a/block/blk-mq.c b/block/blk-mq.c index 9ae1d9ccf4df41178ce765334416e5211983653a..a69ad122ed66c6b93385f1b3959a893b407b9d05 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -1554,13 +1554,13 @@ static blk_qc_t blk_mq_make_request(struct request_queue *q, struct bio *bio) blk_queue_bounce(q, &bio); + blk_queue_split(q, &bio, q->bio_split); + if (bio_integrity_enabled(bio) && bio_integrity_prep(bio)) { bio_io_error(bio); return BLK_QC_T_NONE; } - blk_queue_split(q, &bio, q->bio_split); - if (!is_flush_fua && !blk_queue_nomerges(q) && blk_attempt_plug_merge(q, bio, &request_count, &same_queue_rq)) return BLK_QC_T_NONE;