|
@@ -3724,6 +3724,7 @@ static int add_new_disk(mddev_t * mddev, mdu_disk_info_t *info)
|
|
|
if (err)
|
|
|
export_rdev(rdev);
|
|
|
|
|
|
+ md_update_sb(mddev, 1);
|
|
|
set_bit(MD_RECOVERY_NEEDED, &mddev->recovery);
|
|
|
md_wakeup_thread(mddev->thread);
|
|
|
return err;
|
|
@@ -5275,7 +5276,6 @@ void md_do_sync(mddev_t *mddev)
|
|
|
mddev->pers->sync_request(mddev, max_sectors, &skipped, 1);
|
|
|
|
|
|
if (!test_bit(MD_RECOVERY_ERR, &mddev->recovery) &&
|
|
|
- test_bit(MD_RECOVERY_SYNC, &mddev->recovery) &&
|
|
|
!test_bit(MD_RECOVERY_CHECK, &mddev->recovery) &&
|
|
|
mddev->curr_resync > 2) {
|
|
|
if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) {
|
|
@@ -5299,6 +5299,7 @@ void md_do_sync(mddev_t *mddev)
|
|
|
rdev->recovery_offset = mddev->curr_resync;
|
|
|
}
|
|
|
}
|
|
|
+ set_bit(MD_CHANGE_DEVS, &mddev->flags);
|
|
|
|
|
|
skip:
|
|
|
mddev->curr_resync = 0;
|