|
@@ -7381,8 +7381,10 @@ void md_do_sync(struct md_thread *thread)
|
|
|
/* just incase thread restarts... */
|
|
|
if (test_bit(MD_RECOVERY_DONE, &mddev->recovery))
|
|
|
return;
|
|
|
- if (mddev->ro) /* never try to sync a read-only array */
|
|
|
+ if (mddev->ro) {/* never try to sync a read-only array */
|
|
|
+ set_bit(MD_RECOVERY_INTR, &mddev->recovery);
|
|
|
return;
|
|
|
+ }
|
|
|
|
|
|
if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) {
|
|
|
if (test_bit(MD_RECOVERY_CHECK, &mddev->recovery)) {
|
|
@@ -7824,6 +7826,7 @@ void md_check_recovery(struct mddev *mddev)
|
|
|
/* There is no thread, but we need to call
|
|
|
* ->spare_active and clear saved_raid_disk
|
|
|
*/
|
|
|
+ set_bit(MD_RECOVERY_INTR, &mddev->recovery);
|
|
|
md_reap_sync_thread(mddev);
|
|
|
clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery);
|
|
|
goto unlock;
|