From 655da9eb72e2e638ccb0666897675b444effd3fe Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Mon, 29 Dec 2003 23:47:20 -0800 Subject: [PATCH] Fix another dm and bio problem From: Mark Haverkamp This fixes a problem similar to the patch I submitted on 11/20 http://marc.theaimsgroup.com/?l=linux-kernel&m=106936439707962&w=2 In this case, though, the result is an: "Incorrect number of segments after building list" message. The macro __BVEC_START assumes a bi_idx of zero when the dm code can submit a bio with a non-zero bi_idx. The code has been tested on an 8 way / 8gb OSDL STP machine with a 197G lvm volume running dbt2 test. --- include/linux/bio.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/linux/bio.h b/include/linux/bio.h index 0ac6a27ea0db..4f090059372e 100644 --- a/include/linux/bio.h +++ b/include/linux/bio.h @@ -162,7 +162,7 @@ struct bio { */ #define __BVEC_END(bio) bio_iovec_idx((bio), (bio)->bi_vcnt - 1) -#define __BVEC_START(bio) bio_iovec_idx((bio), 0) +#define __BVEC_START(bio) bio_iovec_idx((bio), (bio)->bi_idx) #define BIOVEC_PHYS_MERGEABLE(vec1, vec2) \ ((bvec_to_phys((vec1)) + (vec1)->bv_len) == bvec_to_phys((vec2))) #define BIOVEC_VIRT_MERGEABLE(vec1, vec2) \ -- cgit v1.2.3