diff options
Diffstat (limited to 'drivers/md/raid10.c')
| -rw-r--r-- | drivers/md/raid10.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index 981898049491..d6f7978b4449 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c | |||
| @@ -4529,11 +4529,12 @@ static sector_t reshape_request(struct mddev *mddev, sector_t sector_nr, | |||
| 4529 | allow_barrier(conf); | 4529 | allow_barrier(conf); |
| 4530 | } | 4530 | } |
| 4531 | 4531 | ||
| 4532 | raise_barrier(conf, 0); | ||
| 4532 | read_more: | 4533 | read_more: |
| 4533 | /* Now schedule reads for blocks from sector_nr to last */ | 4534 | /* Now schedule reads for blocks from sector_nr to last */ |
| 4534 | r10_bio = raid10_alloc_init_r10buf(conf); | 4535 | r10_bio = raid10_alloc_init_r10buf(conf); |
| 4535 | r10_bio->state = 0; | 4536 | r10_bio->state = 0; |
| 4536 | raise_barrier(conf, sectors_done != 0); | 4537 | raise_barrier(conf, 1); |
| 4537 | atomic_set(&r10_bio->remaining, 0); | 4538 | atomic_set(&r10_bio->remaining, 0); |
| 4538 | r10_bio->mddev = mddev; | 4539 | r10_bio->mddev = mddev; |
| 4539 | r10_bio->sector = sector_nr; | 4540 | r10_bio->sector = sector_nr; |
| @@ -4629,6 +4630,8 @@ read_more: | |||
| 4629 | if (sector_nr <= last) | 4630 | if (sector_nr <= last) |
| 4630 | goto read_more; | 4631 | goto read_more; |
| 4631 | 4632 | ||
| 4633 | lower_barrier(conf); | ||
| 4634 | |||
| 4632 | /* Now that we have done the whole section we can | 4635 | /* Now that we have done the whole section we can |
| 4633 | * update reshape_progress | 4636 | * update reshape_progress |
| 4634 | */ | 4637 | */ |
