diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-03-12 23:18:54 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-03-12 23:18:54 -0500 |
| commit | f414ca64be4b36c30deb5b5fa25c5a8ff42ea56b (patch) | |
| tree | 19e4ea30bb32a4a2d3794d09be9b442f1c30ceb7 | |
| parent | 2f51c8204ab3ea211ac92f3b7b88a38595ed6412 (diff) | |
| parent | 90d0f0f11588ec692c12f9009089b398be395184 (diff) | |
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
Pull block merge fix from Jens Axboe.
This fixes the block segment counting bug and resulting sg overrun
reported by Kent Overstreet, introduced with the last block pull.
* 'for-linus' of git://git.kernel.dk/linux-block:
block: don't optimize for non-cloned bio in bio_get_last_bvec()
| -rw-r--r-- | include/linux/bio.h | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/include/linux/bio.h b/include/linux/bio.h index cb6888824108..88bc64f00bb5 100644 --- a/include/linux/bio.h +++ b/include/linux/bio.h | |||
| @@ -320,11 +320,6 @@ static inline void bio_get_last_bvec(struct bio *bio, struct bio_vec *bv) | |||
| 320 | struct bvec_iter iter = bio->bi_iter; | 320 | struct bvec_iter iter = bio->bi_iter; |
| 321 | int idx; | 321 | int idx; |
| 322 | 322 | ||
| 323 | if (!bio_flagged(bio, BIO_CLONED)) { | ||
| 324 | *bv = bio->bi_io_vec[bio->bi_vcnt - 1]; | ||
| 325 | return; | ||
| 326 | } | ||
| 327 | |||
| 328 | if (unlikely(!bio_multiple_segments(bio))) { | 323 | if (unlikely(!bio_multiple_segments(bio))) { |
| 329 | *bv = bio_iovec(bio); | 324 | *bv = bio_iovec(bio); |
| 330 | return; | 325 | return; |
