raid1/raid10: slow down resync if there is non-resync activity pending
[sfrench/cifs-2.6.git] / drivers / md / raid1.c
index c7c8cde0ab21128527cd74a1d7df4a0e388dc718..358a08e656f6ee949f0fe5033bdab09b835cd49b 100644 (file)
@@ -2535,6 +2535,13 @@ static sector_t raid1_sync_request(struct mddev *mddev, sector_t sector_nr,
                return sync_blocks;
        }
 
+       /*
+        * If there is non-resync activity waiting for a turn, then let it
+        * though before starting on this new sync request.
+        */
+       if (conf->nr_waiting)
+               schedule_timeout_uninterruptible(1);
+
        /* we are incrementing sector_nr below. To be safe, we check against
         * sector_nr + two times RESYNC_SECTORS
         */