req->biotail->bi_next = bio;
        req->biotail = bio;
        req->__data_len += bio->bi_iter.bi_size;
-       req->ioprio = ioprio_best(req->ioprio, bio_prio(bio));
 
        blk_account_io_start(req, false);
        return true;
 
        req->__sector = bio->bi_iter.bi_sector;
        req->__data_len += bio->bi_iter.bi_size;
-       req->ioprio = ioprio_best(req->ioprio, bio_prio(bio));
 
        blk_account_io_start(req, false);
        return true;
        req->biotail->bi_next = bio;
        req->biotail = bio;
        req->__data_len += bio->bi_iter.bi_size;
-       req->ioprio = ioprio_best(req->ioprio, bio_prio(bio));
        req->nr_phys_segments = segments + 1;
 
        blk_account_io_start(req, false);
 
        if (req->write_hint != next->write_hint)
                return NULL;
 
+       if (req->ioprio != next->ioprio)
+               return NULL;
+
        /*
         * If we are allowed to merge, then append bio list
         * from next to rq and release next. merge_requests_fn
         */
        blk_account_io_merge(next);
 
-       req->ioprio = ioprio_best(req->ioprio, next->ioprio);
-
        /*
         * ownership of bio passed from next to req, return 'next' for
         * the caller to free
        if (rq->write_hint != bio->bi_write_hint)
                return false;
 
+       if (rq->ioprio != bio_prio(bio))
+               return false;
+
        return true;
 }