diff options
| author | Andrew Morton <akpm@osdl.org> | 2003-12-29 23:47:20 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.osdl.org> | 2003-12-29 23:47:20 -0800 |
| commit | 655da9eb72e2e638ccb0666897675b444effd3fe (patch) | |
| tree | 3fee52f494401a9894d51720e6269bdd27c3917c | |
| parent | 06004ee5b76dac0106a5fd3d9371f92983145909 (diff) | |
[PATCH] Fix another dm and bio problem
From: Mark Haverkamp <markh@osdl.org>
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.
| -rw-r--r-- | include/linux/bio.h | 2 |
1 files changed, 1 insertions, 1 deletions
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) \ |
