Skip to content

Commit f3858c8

Browse files
calebsanderkawasaki
authored andcommitted
bio-integrity-fs: pass data iter to bio_integrity_verify()
bio_integrity_verify() expects the passed struct bvec_iter to be an iterator over bio data, not integrity. So construct a separate data bvec_iter without the bio_integrity_bytes() conversion and pass it to bio_integrity_verify() instead of bip_iter. Signed-off-by: Caleb Sander Mateos <csander@purestorage.com> Fixes: 0bde8a1 ("block: add fs_bio_integrity helpers") Reviewed-by: Anuj Gupta <anuj20.g@samsung.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
1 parent 12de0bc commit f3858c8

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

block/bio-integrity-fs.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ int fs_bio_integrity_verify(struct bio *bio, sector_t sector, unsigned int size)
5555
{
5656
struct blk_integrity *bi = blk_get_integrity(bio->bi_bdev->bd_disk);
5757
struct bio_integrity_payload *bip = bio_integrity(bio);
58+
struct bvec_iter data_iter = {.bi_sector = sector, .bi_size = size};
5859

5960
/*
6061
* Reinitialize bip->bip_iter.
@@ -65,7 +66,7 @@ int fs_bio_integrity_verify(struct bio *bio, sector_t sector, unsigned int size)
6566
memset(&bip->bip_iter, 0, sizeof(bip->bip_iter));
6667
bip->bip_iter.bi_sector = sector;
6768
bip->bip_iter.bi_size = bio_integrity_bytes(bi, size >> SECTOR_SHIFT);
68-
return blk_status_to_errno(bio_integrity_verify(bio, &bip->bip_iter));
69+
return blk_status_to_errno(bio_integrity_verify(bio, &data_iter));
6970
}
7071

7172
static int __init fs_bio_integrity_init(void)

0 commit comments

Comments
 (0)