|
@@ -759,8 +759,11 @@ static struct md_rdev *read_balance(struct r10conf *conf,
|
|
|
* the resync window. We take the first readable disk when
|
|
|
* above the resync window.
|
|
|
*/
|
|
|
- if (conf->mddev->recovery_cp < MaxSector
|
|
|
- && (this_sector + sectors >= conf->next_resync))
|
|
|
+ if ((conf->mddev->recovery_cp < MaxSector
|
|
|
+ && (this_sector + sectors >= conf->next_resync)) ||
|
|
|
+ (mddev_is_clustered(conf->mddev) &&
|
|
|
+ md_cluster_ops->area_resyncing(conf->mddev, READ, this_sector,
|
|
|
+ this_sector + sectors)))
|
|
|
do_balance = 0;
|
|
|
|
|
|
for (slot = 0; slot < conf->copies ; slot++) {
|