aboutsummaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-12-22 19:00:25 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2015-12-22 19:00:25 -0500
commit24bc3ea5df2e1d89e9d50ecca57c210b87ad61d2 (patch)
treeac85fbb100151d235aa141fdf4294829a556b1d2 /block
parent0bee6ec80b92d853d6cad3c35fb5f1dd2d88b8f8 (diff)
parente8271201462710dbbaa0448b768428606724ca90 (diff)
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
Pull block layer fixes from Jens Axboe: "Three small fixes for 4.4 final. Specifically: - The segment issue fix from Junichi, where the old IO path does a bio limit split before potentially bouncing the pages. We need to do that in the right order, to ensure that limitations are met. - A NVMe surprise removal IO hang fix from Keith. - A use-after-free in null_blk, introduced by a previous patch in this series. From Mike Krinkin" * 'for-linus' of git://git.kernel.dk/linux-block: null_blk: fix use-after-free error block: ensure to split after potentially bouncing a bio NVMe: IO ending fixes on surprise removal
Diffstat (limited to 'block')
-rw-r--r--block/blk-core.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/block/blk-core.c b/block/blk-core.c
index 3636be469fa2..c487b94c59e3 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -1689,8 +1689,6 @@ static blk_qc_t blk_queue_bio(struct request_queue *q, struct bio *bio)
1689 struct request *req; 1689 struct request *req;
1690 unsigned int request_count = 0; 1690 unsigned int request_count = 0;
1691 1691
1692 blk_queue_split(q, &bio, q->bio_split);
1693
1694 /* 1692 /*
1695 * low level driver can indicate that it wants pages above a 1693 * low level driver can indicate that it wants pages above a
1696 * certain limit bounced to low memory (ie for highmem, or even 1694 * certain limit bounced to low memory (ie for highmem, or even
@@ -1698,6 +1696,8 @@ static blk_qc_t blk_queue_bio(struct request_queue *q, struct bio *bio)
1698 */ 1696 */
1699 blk_queue_bounce(q, &bio); 1697 blk_queue_bounce(q, &bio);
1700 1698
1699 blk_queue_split(q, &bio, q->bio_split);
1700
1701 if (bio_integrity_enabled(bio) && bio_integrity_prep(bio)) { 1701 if (bio_integrity_enabled(bio) && bio_integrity_prep(bio)) {
1702 bio->bi_error = -EIO; 1702 bio->bi_error = -EIO;
1703 bio_endio(bio); 1703 bio_endio(bio);