diff options
Diffstat (limited to 'drivers/md/md.c')
| -rw-r--r-- | drivers/md/md.c | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c index 237b7e0ddc7a..2382cfc9bb3f 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -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;  | 
