| @@ -4831,7 +4831,7 @@ action_store(struct mddev *mddev, const char *page, size_t len) · 4830 unmodified lines |
| 4831 | 4831 | flush_workqueue(md_misc_wq); |
| 4832 | 4832 | if (mddev->sync_thread) { |
| 4833 | 4833 | set_bit(MD_RECOVERY_INTR, &mddev->recovery); |
| 4834 | | − md_reap_sync_thread(mddev, true); |
| 4834 | + md_reap_sync_thread(mddev); |
| 4835 | 4835 | } |
| 4836 | 4836 | mddev_unlock(mddev); |
| 4837 | 4837 | } |
| @@ -6197,7 +6197,7 @@ static void __md_stop_writes(struct mddev *mddev) · 1359 unmodified lines |
| 6197 | 6197 | flush_workqueue(md_misc_wq); |
| 6198 | 6198 | if (mddev->sync_thread) { |
| 6199 | 6199 | set_bit(MD_RECOVERY_INTR, &mddev->recovery); |
| 6200 | | − md_reap_sync_thread(mddev, true); |
| 6200 | + md_reap_sync_thread(mddev); |
| 6201 | 6201 | } |
| 6202 | 6202 | |
| 6203 | 6203 | del_timer_sync(&mddev->safemode_timer); |
| @@ -9303,7 +9303,7 @@ void md_check_recovery(struct mddev *mddev) · 3099 unmodified lines |
| 9303 | 9303 | * ->spare_active and clear saved_raid_disk |
| 9304 | 9304 | */ |
| 9305 | 9305 | set_bit(MD_RECOVERY_INTR, &mddev->recovery); |
| 9306 | | − md_reap_sync_thread(mddev, true); |
| 9306 | + md_reap_sync_thread(mddev); |
| 9307 | 9307 | clear_bit(MD_RECOVERY_RECOVER, &mddev->recovery); |
| 9308 | 9308 | clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery); |
| 9309 | 9309 | clear_bit(MD_SB_CHANGE_PENDING, &mddev->sb_flags); |
| @@ -9338,7 +9338,7 @@ void md_check_recovery(struct mddev *mddev) · 28 unmodified lines |
| 9338 | 9338 | goto unlock; |
| 9339 | 9339 | } |
| 9340 | 9340 | if (mddev->sync_thread) { |
| 9341 | | − md_reap_sync_thread(mddev, true); |
| 9341 | + md_reap_sync_thread(mddev); |
| 9342 | 9342 | goto unlock; |
| 9343 | 9343 | } |
| 9344 | 9344 | /* Set RUNNING before clearing NEEDED to avoid |
| @@ -9411,18 +9411,14 @@ void md_check_recovery(struct mddev *mddev) · 66 unmodified lines |
| 9411 | 9411 | } |
| 9412 | 9412 | EXPORT_SYMBOL(md_check_recovery); |
| 9413 | 9413 | |
| 9414 | | −void md_reap_sync_thread(struct mddev *mddev, bool reconfig_mutex_held) |
| 9414 | +void md_reap_sync_thread(struct mddev *mddev) |
| 9415 | 9415 | { |
| 9416 | 9416 | struct md_rdev *rdev; |
| 9417 | 9417 | sector_t old_dev_sectors = mddev->dev_sectors; |
| 9418 | 9418 | bool is_reshaped = false; |
| 9419 | 9419 | |
| 9420 | | − if (reconfig_mutex_held) |
| 9421 | | − mddev_unlock(mddev); |
| 9422 | 9420 | /* resync has finished, collect result */ |
| 9423 | 9421 | md_unregister_thread(&mddev->sync_thread); |
| 9424 | | − if (reconfig_mutex_held) |
| 9425 | | − mddev_lock_nointr(mddev); |
| 9426 | 9422 | if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery) && |
| 9427 | 9423 | !test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery) && |
| 9428 | 9424 | mddev->degraded != mddev->raid_disks) { |