Commit 655da9eb authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[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.
parent 06004ee5
...@@ -162,7 +162,7 @@ struct bio { ...@@ -162,7 +162,7 @@ struct bio {
*/ */
#define __BVEC_END(bio) bio_iovec_idx((bio), (bio)->bi_vcnt - 1) #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) \ #define BIOVEC_PHYS_MERGEABLE(vec1, vec2) \
((bvec_to_phys((vec1)) + (vec1)->bv_len) == bvec_to_phys((vec2))) ((bvec_to_phys((vec1)) + (vec1)->bv_len) == bvec_to_phys((vec2)))
#define BIOVEC_VIRT_MERGEABLE(vec1, vec2) \ #define BIOVEC_VIRT_MERGEABLE(vec1, vec2) \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment