diff -purN --exclude-from=/export/public/clemep/tmp/dontdiff linux-orig/block/ll_rw_blk.c linux-2.6.18-128.1.6.el5.xs5.5.0.496.1012xen/block/ll_rw_blk.c --- linux-orig/block/ll_rw_blk.c 2009-05-29 07:29:54.000000000 -0400 +++ linux-2.6.18-128.1.6.el5.xs5.5.0.496.1012xen/block/ll_rw_blk.c 2009-07-28 13:36:19.000000000 -0400 @@ -1374,6 +1374,7 @@ new_hw_segment: bio->bi_flags |= (1 << BIO_SEG_VALID); } +EXPORT_SYMBOL(blk_recount_segments); static int blk_phys_contig_segment(request_queue_t *q, struct bio *bio, struct bio *nxt) diff -purN --exclude-from=/export/public/clemep/tmp/dontdiff linux-orig/drivers/md/raid1.c linux-2.6.18-128.1.6.el5.xs5.5.0.496.1012xen/drivers/md/raid1.c --- linux-orig/drivers/md/raid1.c 2009-05-29 07:29:54.000000000 -0400 +++ linux-2.6.18-128.1.6.el5.xs5.5.0.496.1012xen/drivers/md/raid1.c 2009-07-28 13:35:36.000000000 -0400 @@ -900,6 +900,7 @@ static int make_request(request_queue_t */ __bio_for_each_segment(bvec, mbio, j, 0) bvec->bv_page = behind_pages[j]; + blk_recount_segments(q, mbio); if (test_bit(WriteMostly, &conf->mirrors[i].rdev->flags)) atomic_inc(&r1_bio->behind_remaining); }