From: Neil Brown <neilb@cse.unsw.edu.au>

I think the following should fix the bug.  It only affects 'resync'
not normal IO or recovery (after a drive has failed).

(I only tested it on whole-drives....)

Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/md/raid10.c |    1 +
 1 files changed, 1 insertion(+)

diff -puN drivers/md/raid10.c~raid10-overwrites-partition-tables drivers/md/raid10.c
--- 25/drivers/md/raid10.c~raid10-overwrites-partition-tables	2004-11-29 00:38:26.053065320 -0800
+++ 25-akpm/drivers/md/raid10.c	2004-11-29 00:38:26.058064560 -0800
@@ -1150,6 +1150,7 @@ static void sync_request_write(mddev_t *
 		md_sync_acct(conf->mirrors[d].rdev->bdev, tbio->bi_size >> 9);
 
 		tbio->bi_sector += conf->mirrors[d].rdev->data_offset;
+		tbio->bi_bdev = conf->mirrors[d].rdev->bdev;
 		generic_make_request(tbio);
 	}
 
_