Lines Matching full:recovery
512 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in __mddev_resume()
1437 /* active but not in sync implies recovery up to in super_90_validate()
2021 &mddev->recovery)) in super_1_validate()
2471 /* May as well allow recovery to be retried once */ in bind_rdev_to_array()
2667 * curr_resync_completed can only be used during recovery. in md_update_sb()
2674 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) && in md_update_sb()
2675 test_bit(MD_RECOVERY_RECOVER, &mddev->recovery) && in md_update_sb()
2676 !test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_update_sb()
2724 * then a recovery will happen and soon that array won't in md_update_sb()
2805 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in md_update_sb()
2843 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in add_bound_rdev()
2844 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in add_bound_rdev()
2990 set_bit(MD_RECOVERY_NEEDED, &rdev->mddev->recovery); in state_store()
3021 * check if recovery is needed. in state_store()
3027 set_bit(MD_RECOVERY_NEEDED, &rdev->mddev->recovery); in state_store()
3156 set_bit(MD_RECOVERY_NEEDED, &rdev->mddev->recovery); in slot_store()
3166 if (test_bit(MD_RECOVERY_RUNNING, &rdev->mddev->recovery)) in slot_store()
3250 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in new_offset_store()
3917 * - array is not engaged in resync/recovery/reshape in level_store()
3923 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) || in level_store()
4294 if (mddev->pers && !test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) in resync_start_store()
4804 unsigned long recovery = mddev->recovery; in md_sync_action() local
4810 if (test_bit(MD_RECOVERY_FROZEN, &recovery)) in md_sync_action()
4824 if (!test_bit(MD_RECOVERY_RUNNING, &recovery) && in md_sync_action()
4825 !test_bit(MD_RECOVERY_NEEDED, &recovery)) in md_sync_action()
4828 if (test_bit(MD_RECOVERY_RESHAPE, &recovery) || in md_sync_action()
4832 if (test_bit(MD_RECOVERY_RECOVER, &recovery)) in md_sync_action()
4835 if (test_bit(MD_RECOVERY_SYNC, &recovery)) { in md_sync_action()
4840 if (test_bit(MD_RECOVERY_CHECK, &recovery)) in md_sync_action()
4842 if (test_bit(MD_RECOVERY_REQUESTED, &recovery)) in md_sync_action()
4890 if (!test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in stop_sync_thread()
4898 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in stop_sync_thread()
4908 !test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) || in stop_sync_thread()
4909 (!test_bit(MD_RECOVERY_FROZEN, &mddev->recovery) && in stop_sync_thread()
4920 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in md_idle_sync_thread()
4929 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in md_frozen_sync_thread()
4938 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in md_unfrozen_sync_thread()
4939 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_unfrozen_sync_thread()
4955 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in mddev_start_reshape()
4965 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in mddev_start_reshape()
4997 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in action_store()
5020 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
5024 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
5030 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
5031 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in action_store()
5034 set_bit(MD_RECOVERY_CHECK, &mddev->recovery); in action_store()
5037 set_bit(MD_RECOVERY_REQUESTED, &mddev->recovery); in action_store()
5038 set_bit(MD_RECOVERY_SYNC, &mddev->recovery); in action_store()
5042 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
5058 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in action_store()
5205 if (!test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in sync_completed_show()
5212 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) || in sync_completed_show()
5213 test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)) in sync_completed_show()
5246 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in min_sync_store()
5289 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in max_sync_store()
6151 mddev->recovery = 0; in md_run()
6233 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_run()
6234 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_run()
6299 set_bit(MD_RECOVERY_WAIT, &mddev->recovery); in md_start()
6301 clear_bit(MD_RECOVERY_WAIT, &mddev->recovery); in md_start()
6342 /* Kick recovery or resync if necessary */ in restart_array()
6343 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in restart_array()
6390 mddev->recovery = 0; in md_clean()
6433 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in md_stop_writes()
6469 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in __md_stop()
6498 if (!test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) { in md_set_readonly()
6500 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in md_set_readonly()
6508 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in md_set_readonly()
6526 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in md_set_readonly()
6527 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_set_readonly()
6544 if (!test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) { in do_md_stop()
6546 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in do_md_stop()
6552 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in do_md_stop()
6555 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in do_md_stop()
6556 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in do_md_stop()
7163 * Kick recovery, maybe this spare has to be added to the in hot_add_disk()
7166 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in hot_add_disk()
7182 if (mddev->recovery || mddev->sync_thread) in set_bitmap_file()
7377 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in update_size()
7413 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) || in update_raid_disks()
7414 test_bit(MD_RESYNCING_REMOTE, &mddev->recovery) || in update_raid_disks()
7533 if (mddev->recovery || mddev->sync_thread) { in update_array_info()
7836 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_ioctl()
8150 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_error()
8152 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_error()
8154 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_error()
8206 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) || in status_resync()
8207 test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)) in status_resync()
8214 if (test_bit(MD_RECOVERY_DONE, &mddev->recovery)) in status_resync()
8233 if (test_bit(MD_RESYNCING_REMOTE, &mddev->recovery)) { in status_resync()
8287 (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)? in status_resync()
8289 (test_bit(MD_RECOVERY_CHECK, &mddev->recovery)? in status_resync()
8291 (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) ? in status_resync()
8292 "resync" : "recovery"))), in status_resync()
8628 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_done_sync()
8629 set_bit(MD_RECOVERY_ERROR, &mddev->recovery); in md_done_sync()
8631 // stop recovery, signal do_sync .... in md_done_sync()
8654 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_write_start()
8914 * complete before we start doing a recovery. in md_sync_position()
8917 * recovery has checked that bit and skipped that in md_sync_position()
8952 if (test_bit(MD_RECOVERY_DONE, &mddev->recovery)) in md_do_sync()
8955 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
8958 if (test_bit(MD_RECOVERY_WAIT, &mddev->recovery) || in md_do_sync()
8960 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_do_sync()
8970 if (!(test_bit(MD_RECOVERY_SYNC, &mddev->recovery) || in md_do_sync()
8971 test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) || in md_do_sync()
8972 test_bit(MD_RECOVERY_RECOVER, &mddev->recovery)) in md_do_sync()
8998 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
9027 if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery) && in md_do_sync()
9095 if (!test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_do_sync()
9108 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) && in md_do_sync()
9117 !test_bit(MD_RECOVERY_INTR, &mddev->recovery)) { in md_do_sync()
9126 &mddev->recovery)); in md_do_sync()
9129 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
9135 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_do_sync()
9144 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
9176 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
9209 test_bit(MD_RECOVERY_INTR, &mddev->recovery) in md_do_sync()
9217 if (!test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_do_sync()
9218 !test_bit(MD_RECOVERY_INTR, &mddev->recovery) && in md_do_sync()
9225 if (!test_bit(MD_RECOVERY_CHECK, &mddev->recovery) && in md_do_sync()
9227 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) { in md_do_sync()
9228 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) { in md_do_sync()
9233 &mddev->recovery)) in md_do_sync()
9243 if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
9245 if (!test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_do_sync()
9246 test_bit(MD_RECOVERY_RECOVER, &mddev->recovery)) { in md_do_sync()
9267 if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_do_sync()
9268 !test_bit(MD_RECOVERY_INTR, &mddev->recovery) && in md_do_sync()
9282 if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery)) { in md_do_sync()
9284 if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) in md_do_sync()
9287 } else if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) in md_do_sync()
9289 set_bit(MD_RECOVERY_DONE, &mddev->recovery); in md_do_sync()
9390 if (this && test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in remove_and_add_spares()
9442 set_bit(MD_RECOVERY_RESHAPE, &mddev->recovery); in md_choose_sync_action()
9443 clear_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_choose_sync_action()
9449 set_bit(MD_RECOVERY_SYNC, &mddev->recovery); in md_choose_sync_action()
9450 clear_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_choose_sync_action()
9461 clear_bit(MD_RECOVERY_SYNC, &mddev->recovery); in md_choose_sync_action()
9462 clear_bit(MD_RECOVERY_CHECK, &mddev->recovery); in md_choose_sync_action()
9463 clear_bit(MD_RECOVERY_REQUESTED, &mddev->recovery); in md_choose_sync_action()
9465 /* Start new recovery. */ in md_choose_sync_action()
9466 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_choose_sync_action()
9471 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) in md_choose_sync_action()
9521 name = test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) ? in md_start_sync()
9547 clear_bit(MD_RECOVERY_SYNC, &mddev->recovery); in md_start_sync()
9548 clear_bit(MD_RECOVERY_RESHAPE, &mddev->recovery); in md_start_sync()
9549 clear_bit(MD_RECOVERY_REQUESTED, &mddev->recovery); in md_start_sync()
9550 clear_bit(MD_RECOVERY_CHECK, &mddev->recovery); in md_start_sync()
9551 clear_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_start_sync()
9563 if (test_and_clear_bit(MD_RECOVERY_RECOVER, &mddev->recovery) && in md_start_sync()
9570 if (!test_bit(MD_RECOVERY_DONE, &mddev->recovery)) { in unregister_sync_thread()
9571 /* resync/recovery still happening */ in unregister_sync_thread()
9572 clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in unregister_sync_thread()
9586 * need this as they never do any recovery or update the superblock.
9591 * "->recovery" and create a thread at ->sync_thread.
9598 * 2/ If a recovery thread is running, don't do anything else.
9599 * 3/ If recovery has finished, clean up, possibly marking spares active.
9619 !test_bit(MD_RECOVERY_NEEDED, &mddev->recovery) && in md_check_recovery()
9620 !test_bit(MD_RECOVERY_DONE, &mddev->recovery)) in md_check_recovery()
9624 test_bit(MD_RECOVERY_NEEDED, &mddev->recovery) || in md_check_recovery()
9625 test_bit(MD_RECOVERY_DONE, &mddev->recovery) || in md_check_recovery()
9641 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in md_check_recovery()
9660 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_check_recovery()
9668 set_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_check_recovery()
9672 clear_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_check_recovery()
9673 clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_check_recovery()
9704 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in md_check_recovery()
9714 set_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_check_recovery()
9719 clear_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_check_recovery()
9720 clear_bit(MD_RECOVERY_DONE, &mddev->recovery); in md_check_recovery()
9722 if (test_and_clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery) && in md_check_recovery()
9723 !test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) { in md_check_recovery()
9726 clear_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_check_recovery()
9747 if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery) && in md_reap_sync_thread()
9748 !test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery) && in md_reap_sync_thread()
9757 if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_reap_sync_thread()
9777 clear_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_reap_sync_thread()
9778 clear_bit(MD_RECOVERY_DONE, &mddev->recovery); in md_reap_sync_thread()
9779 clear_bit(MD_RECOVERY_SYNC, &mddev->recovery); in md_reap_sync_thread()
9780 clear_bit(MD_RECOVERY_RESHAPE, &mddev->recovery); in md_reap_sync_thread()
9781 clear_bit(MD_RECOVERY_REQUESTED, &mddev->recovery); in md_reap_sync_thread()
9782 clear_bit(MD_RECOVERY_CHECK, &mddev->recovery); in md_reap_sync_thread()
9791 /* flag recovery needed just to double check */ in md_reap_sync_thread()
9792 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_reap_sync_thread()
10032 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in check_sb_changes()
10037 * as faulty. The recovery is performed by the in check_sb_changes()
10058 if (test_bit(MD_RESYNCING_REMOTE, &mddev->recovery) && in check_sb_changes()
10069 } else if (test_bit(MD_RESYNCING_REMOTE, &mddev->recovery) && in check_sb_changes()
10117 /* The other node finished recovery, call spare_active to set in read_rdev()