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.