Patch "block: ensure to split after potentially bouncing a bio" has been added to the 4.3-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
block: ensure to split after potentially bouncing a bio
to the 4.3-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:
block-ensure-to-split-after-potentially-bouncing-a-bio.patch
and it can be found in the queue-4.3 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
23688bf4f830a89866fd0ed3501e342a7360fe4fMon Sep 17 00:00:00 2001
From: Junichi Nomura <[email protected]>
Date: Tue, 22 Dec 2015 10:23:44 -0700
Subject: block: ensure to split after potentially bouncing a bio
From: Junichi Nomura <[email protected]>
commit 23688bf4f830a89866fd0ed3501e342a7360fe4f upstream.
blk_queue_bio() does split then bounce, which makes the segment counting based on pages before bouncing and could go wrong. Move the split to after bouncing, like we do for blk-mq, and the we fix the issue of having the bio count for segments be wrong.
--- block/blk-core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
block/blk-core.c +2 -2
@@ -1616,8 +1616,6 @@ static void blk_queue_bio(struct requeststruct request *req;unsigned int request_count =0 ; -blk_queue_split (q, &bio, q->bio_split); -/* * low level driver can indicate that it wants pages above a * certain limit bounced to low memory (ie for highmem, or even
@@ -1625,6 +1623,8 @@ static void blk_queue_bio(struct request*/ blk_queue_bounce (q, &bio); +blk_queue_split (q, &bio, q->bio_split); +if (bio_integrity_enabled (bio) &&bio_integrity_prep (bio)) { bio->bi_error = -EIO ;bio_endio (bio);
Patches currently in stable-queue which might be from [email protected] are
queue-4.3/block-ensure-to-split-after-potentially-bouncing-a-bio.patch