diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/md/raid10.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index 1a74c12f0a6e..de174ad6f8bd 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c | |||
| @@ -552,14 +552,13 @@ static void __raid10_find_phys(struct geom *geo, struct r10bio *r10bio) | |||
| 552 | for (n = 0; n < geo->near_copies; n++) { | 552 | for (n = 0; n < geo->near_copies; n++) { |
| 553 | int d = dev; | 553 | int d = dev; |
| 554 | sector_t s = sector; | 554 | sector_t s = sector; |
| 555 | r10bio->devs[slot].addr = sector; | ||
| 556 | r10bio->devs[slot].devnum = d; | 555 | r10bio->devs[slot].devnum = d; |
| 556 | r10bio->devs[slot].addr = s; | ||
| 557 | slot++; | 557 | slot++; |
| 558 | 558 | ||
| 559 | for (f = 1; f < geo->far_copies; f++) { | 559 | for (f = 1; f < geo->far_copies; f++) { |
| 560 | d += geo->near_copies; | 560 | d += geo->near_copies; |
| 561 | if (d >= geo->raid_disks) | 561 | d %= geo->raid_disks; |
| 562 | d -= geo->raid_disks; | ||
| 563 | s += geo->stride; | 562 | s += geo->stride; |
| 564 | r10bio->devs[slot].devnum = d; | 563 | r10bio->devs[slot].devnum = d; |
| 565 | r10bio->devs[slot].addr = s; | 564 | r10bio->devs[slot].addr = s; |
