From: Benjamin Marzinski Date: Tue, 2 Jul 2024 09:56:45 +0000 (+0200) Subject: dm io: bump num_bvecs to handle offset memory X-Git-Tag: v6.11-rc1~113^2~31 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=06a0b333e58407970e9b109d054610d2f107ca87;p=thirdparty%2Flinux.git dm io: bump num_bvecs to handle offset memory If dp->get_page() returns a non-zero offset, the bio might need an additional bvec to deal with the offset. For example, if remaining is exactly one page size, but there is an offset, the memory will span two pages. Signed-off-by: Benjamin Marzinski Signed-off-by: Mikulas Patocka --- diff --git a/drivers/md/dm-io.c b/drivers/md/dm-io.c index 7409490259d1d..3333943fe2882 100644 --- a/drivers/md/dm-io.c +++ b/drivers/md/dm-io.c @@ -347,7 +347,7 @@ static void do_region(const blk_opf_t opf, unsigned int region, break; default: num_bvecs = bio_max_segs(dm_sector_div_up(remaining, - (PAGE_SIZE >> SECTOR_SHIFT))); + (PAGE_SIZE >> SECTOR_SHIFT)) + 1); } bio = bio_alloc_bioset(where->bdev, num_bvecs, opf, GFP_NOIO,