On 03/20/2017 04:39 PM, Christoph Hellwig wrote:
> @@ -1534,7 +1529,36 @@ static blk_qc_t blk_mq_make_request(struct
> request_queue *q, struct bio *bio)
> }
>
> plug = current->plug;
> - if (((plug && !blk_queue_nomerges(q)) || is_sync)) {
> + if (plug && q->nr_hw_queues == 1) {
> + [ ... ]
> + } else if (((plug && !blk_queue_nomerges(q)) || is_sync)) {
> struct request *old_rq = NULL;
>
> blk_mq_bio_to_request(rq, bio);
I think this patch will change the behavior for the plug == NULL &&
q->nr_hw_queues == 1 && is_sync case: with this patch applied the code
under "else if" will be executed for that case but that wasn't the case
before this patch.
Bart.