|
@@ -1294,6 +1294,22 @@ static void raid10_write_request(struct mddev *mddev, struct bio *bio,
|
|
|
sector_t sectors;
|
|
|
int max_sectors;
|
|
|
|
|
|
+ if ((mddev_is_clustered(mddev) &&
|
|
|
+ md_cluster_ops->area_resyncing(mddev, WRITE,
|
|
|
+ bio->bi_iter.bi_sector,
|
|
|
+ bio_end_sector(bio)))) {
|
|
|
+ DEFINE_WAIT(w);
|
|
|
+ for (;;) {
|
|
|
+ prepare_to_wait(&conf->wait_barrier,
|
|
|
+ &w, TASK_IDLE);
|
|
|
+ if (!md_cluster_ops->area_resyncing(mddev, WRITE,
|
|
|
+ bio->bi_iter.bi_sector, bio_end_sector(bio)))
|
|
|
+ break;
|
|
|
+ schedule();
|
|
|
+ }
|
|
|
+ finish_wait(&conf->wait_barrier, &w);
|
|
|
+ }
|
|
|
+
|
|
|
/*
|
|
|
* Register the new request and wait if the reconstruction
|
|
|
* thread has put up a bar for new requests.
|