Commit 93bd38b31f5169a8f822de15a01abddd2fc8bcd7
Exists in
ti-lsk-linux-4.1.y
and in
10 other branches
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
Pull block core regression fix from Jens Axboe: "Single fix for a regression introduced in this development cycle, where dm on top of dif/dix is broken. From Darrick Wong" * 'for-linus' of git://git.kernel.dk/linux-block: block: fix regression where bio_integrity_process uses wrong bio_vec iterator
Showing 1 changed file Side-by-side Diff
block/bio-integrity.c
... | ... | @@ -216,9 +216,10 @@ |
216 | 216 | { |
217 | 217 | struct blk_integrity *bi = bdev_get_integrity(bio->bi_bdev); |
218 | 218 | struct blk_integrity_iter iter; |
219 | - struct bio_vec *bv; | |
219 | + struct bvec_iter bviter; | |
220 | + struct bio_vec bv; | |
220 | 221 | struct bio_integrity_payload *bip = bio_integrity(bio); |
221 | - unsigned int i, ret = 0; | |
222 | + unsigned int ret = 0; | |
222 | 223 | void *prot_buf = page_address(bip->bip_vec->bv_page) + |
223 | 224 | bip->bip_vec->bv_offset; |
224 | 225 | |
225 | 226 | |
... | ... | @@ -227,11 +228,11 @@ |
227 | 228 | iter.seed = bip_get_seed(bip); |
228 | 229 | iter.prot_buf = prot_buf; |
229 | 230 | |
230 | - bio_for_each_segment_all(bv, bio, i) { | |
231 | - void *kaddr = kmap_atomic(bv->bv_page); | |
231 | + bio_for_each_segment(bv, bio, bviter) { | |
232 | + void *kaddr = kmap_atomic(bv.bv_page); | |
232 | 233 | |
233 | - iter.data_buf = kaddr + bv->bv_offset; | |
234 | - iter.data_size = bv->bv_len; | |
234 | + iter.data_buf = kaddr + bv.bv_offset; | |
235 | + iter.data_size = bv.bv_len; | |
235 | 236 | |
236 | 237 | ret = proc_fn(&iter); |
237 | 238 | if (ret) { |