From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.linuxfoundation.org ([140.211.169.12]:59859 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751344AbcBBBDM (ORCPT ); Mon, 1 Feb 2016 20:03:12 -0500 Subject: Patch "block: ensure to split after potentially bouncing a bio" has been added to the 4.3-stable tree To: j-nomura@ce.jp.nec.com, axboe@fb.com, gregkh@linuxfoundation.org, t.artem@lycos.com Cc: , From: Date: Mon, 01 Feb 2016 17:03:12 -0800 Message-ID: <1454374992104197@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org List-ID: 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 know about it. >>From 23688bf4f830a89866fd0ed3501e342a7360fe4f Mon Sep 17 00:00:00 2001 From: Junichi Nomura Date: Tue, 22 Dec 2015 10:23:44 -0700 Subject: block: ensure to split after potentially bouncing a bio From: Junichi Nomura 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. Fixes: 54efd50bfd87 ("block: make generic_make_request handle arbitrarily sized bios") Tested-by: Artem S. Tashkinov Signed-off-by: Jens Axboe Signed-off-by: Greg Kroah-Hartman --- block/blk-core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/block/blk-core.c +++ b/block/blk-core.c @@ -1616,8 +1616,6 @@ static void blk_queue_bio(struct request struct 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 j-nomura@ce.jp.nec.com are queue-4.3/block-ensure-to-split-after-potentially-bouncing-a-bio.patch