Patch "blk-mq: really fix plug list flushing for nomerge queues" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
blk-mq: really fix plug list flushing for nomerge queues
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
blk-mq-really-fix-plug-list-flushing-for-nomerge-queues.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
87c279e613f848c691111b29d49de8df3f4f56daMon Sep 17 00:00:00 2001
From: Omar Sandoval <[email protected]>
Date: Wed, 1 Jun 2016 22:18:48 -0700
Subject: blk-mq: really fix plug list flushing for nomerge queues
From: Omar Sandoval <[email protected]>
commit 87c279e613f848c691111b29d49de8df3f4f56da upstream.
Commit 0809e3ac6231 ("block: fix plug list flushing for nomerge queues") updated blk_mq_make_request() to set request_count even when blk_queue_nomerges() returns true. However, blk_mq_make_request() only does limited plugging and doesn't use request_count; blk_sq_make_request() is the one that should have been fixed. Do that and get rid of the unnecessary work in the mq version.
--- block/blk-mq.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-)
block/blk-mq.c +8 -9
@@ -1259,12 +1259,9 @@ static blk_qc_t blk_mq_make_request(strublk_queue_split (q, &bio, q->bio_split); -if (!is_flush_fua && !blk_queue_nomerges (q)) { -if (blk_attempt_plug_merge (q, bio, &request_count, - &same_queue_rq)) -return BLK_QC_T_NONE ; - }else - request_count =blk_plug_queued_count (q); +if (!is_flush_fua && !blk_queue_nomerges (q) && +blk_attempt_plug_merge (q, bio, &request_count, &same_queue_rq)) +return BLK_QC_T_NONE ; rq =blk_mq_map_request (q, bio, &data);if (unlikely (!rq))
@@ -1355,9 +1352,11 @@ static blk_qc_t blk_sq_make_request(strublk_queue_split (q, &bio, q->bio_split); -if (!is_flush_fua && !blk_queue_nomerges (q) && -blk_attempt_plug_merge (q, bio, &request_count,NULL )) -return BLK_QC_T_NONE ; +if (!is_flush_fua && !blk_queue_nomerges (q)) { +if (blk_attempt_plug_merge (q, bio, &request_count,NULL )) +return BLK_QC_T_NONE ; + }else + request_count =blk_plug_queued_count (q); rq =blk_mq_map_request (q, bio, &data);if (unlikely (!rq))
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/blk-mq-really-fix-plug-list-flushing-for-nomerge-queues.patch