diff options
Diffstat (limited to 'drivers/md/raid10.c')
-rw-r--r-- | drivers/md/raid10.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index 41d70bc9ba2f..84e597e1c489 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c | |||
@@ -1946,6 +1946,8 @@ static void sync_request_write(struct mddev *mddev, struct r10bio *r10_bio) | |||
1946 | 1946 | ||
1947 | first = i; | 1947 | first = i; |
1948 | fbio = r10_bio->devs[i].bio; | 1948 | fbio = r10_bio->devs[i].bio; |
1949 | fbio->bi_iter.bi_size = r10_bio->sectors << 9; | ||
1950 | fbio->bi_iter.bi_idx = 0; | ||
1949 | 1951 | ||
1950 | vcnt = (r10_bio->sectors + (PAGE_SIZE >> 9) - 1) >> (PAGE_SHIFT - 9); | 1952 | vcnt = (r10_bio->sectors + (PAGE_SIZE >> 9) - 1) >> (PAGE_SHIFT - 9); |
1951 | /* now find blocks with errors */ | 1953 | /* now find blocks with errors */ |
@@ -1989,7 +1991,7 @@ static void sync_request_write(struct mddev *mddev, struct r10bio *r10_bio) | |||
1989 | bio_reset(tbio); | 1991 | bio_reset(tbio); |
1990 | 1992 | ||
1991 | tbio->bi_vcnt = vcnt; | 1993 | tbio->bi_vcnt = vcnt; |
1992 | tbio->bi_iter.bi_size = r10_bio->sectors << 9; | 1994 | tbio->bi_iter.bi_size = fbio->bi_iter.bi_size; |
1993 | tbio->bi_rw = WRITE; | 1995 | tbio->bi_rw = WRITE; |
1994 | tbio->bi_private = r10_bio; | 1996 | tbio->bi_private = r10_bio; |
1995 | tbio->bi_iter.bi_sector = r10_bio->devs[i].addr; | 1997 | tbio->bi_iter.bi_sector = r10_bio->devs[i].addr; |