--- linux-2.4.18/drivers/md/md.c.orig Thu Jan 30 10:35:01 2003 +++ linux-2.4.18/drivers/md/md.c Thu Jan 30 10:37:13 2003 @@ -3424,6 +3424,10 @@ wake_up(&mddev->recovery_wait); if (!ok) { // stop recovery, signal do_sync .... + if (mddev->pers->stop_resync) + mddev->pers->stop_resync(mddev); + if (mddev->recovery_running) + md_interrupt_thread(md_recovery_thread); } } @@ -3578,7 +3582,7 @@ * this also signals 'finished resyncing' to md_stop */ out: - wait_event(mddev->recovery_wait, atomic_read(&mddev->recovery_active)==0); + wait_disk_event(mddev->recovery_wait, atomic_read(&mddev->recovery_active)==0); up(&mddev->resync_sem); out_nolock: mddev->curr_resync = 0;