From: Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton --- 25-akpm/drivers/md/md.c | 3 +-- 25-akpm/drivers/md/raid1.c | 2 +- 25-akpm/drivers/md/raid10.c | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff -puN drivers/md/md.c~drivers-md-replace-schedule_timeout-with-msleep_interruptible drivers/md/md.c --- 25/drivers/md/md.c~drivers-md-replace-schedule_timeout-with-msleep_interruptible Thu Sep 23 16:06:26 2004 +++ 25-akpm/drivers/md/md.c Thu Sep 23 16:06:26 2004 @@ -3545,8 +3545,7 @@ static void md_do_sync(mddev_t *mddev) if (currspeed > sysctl_speed_limit_min) { if ((currspeed > sysctl_speed_limit_max) || !is_mddev_idle(mddev)) { - current->state = TASK_INTERRUPTIBLE; - schedule_timeout(HZ/4); + msleep_interruptible(250); goto repeat; } } diff -puN drivers/md/raid1.c~drivers-md-replace-schedule_timeout-with-msleep_interruptible drivers/md/raid1.c --- 25/drivers/md/raid1.c~drivers-md-replace-schedule_timeout-with-msleep_interruptible Thu Sep 23 16:06:26 2004 +++ 25-akpm/drivers/md/raid1.c Thu Sep 23 16:06:26 2004 @@ -1015,7 +1015,7 @@ static int sync_request(mddev_t *mddev, * put in a delay to throttle resync. */ if (!go_faster && waitqueue_active(&conf->wait_resume)) - schedule_timeout(HZ); + msleep_interruptible(1000); device_barrier(conf, sector_nr + RESYNC_SECTORS); /* diff -puN drivers/md/raid10.c~drivers-md-replace-schedule_timeout-with-msleep_interruptible drivers/md/raid10.c --- 25/drivers/md/raid10.c~drivers-md-replace-schedule_timeout-with-msleep_interruptible Thu Sep 23 16:06:26 2004 +++ 25-akpm/drivers/md/raid10.c Thu Sep 23 16:06:26 2004 @@ -1362,7 +1362,7 @@ static int sync_request(mddev_t *mddev, * put in a delay to throttle resync. */ if (!go_faster && waitqueue_active(&conf->wait_resume)) - schedule_timeout(HZ); + msleep_interruptible(1000); device_barrier(conf, sector_nr + RESYNC_SECTORS); /* Again, very different code for resync and recovery. _