Lines Matching full:recovery

518 		set_bit(MD_RECOVERY_NEEDED, &mddev->recovery);  in __mddev_resume()
1419 /* active but not in sync implies recovery up to in super_90_validate()
2003 &mddev->recovery)) in super_1_validate()
2466 /* May as well allow recovery to be retried once */ in bind_rdev_to_array()
2662 * curr_resync_completed can only be used during recovery. in md_update_sb()
2669 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) && in md_update_sb()
2670 test_bit(MD_RECOVERY_RECOVER, &mddev->recovery) && in md_update_sb()
2671 !test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_update_sb()
2719 * then a recovery will happen and soon that array won't in md_update_sb()
2800 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in md_update_sb()
2838 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in add_bound_rdev()
2839 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in add_bound_rdev()
2985 set_bit(MD_RECOVERY_NEEDED, &rdev->mddev->recovery); in state_store()
3016 * check if recovery is needed. in state_store()
3022 set_bit(MD_RECOVERY_NEEDED, &rdev->mddev->recovery); in state_store()
3151 set_bit(MD_RECOVERY_NEEDED, &rdev->mddev->recovery); in slot_store()
3161 if (test_bit(MD_RECOVERY_RUNNING, &rdev->mddev->recovery)) in slot_store()
3245 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in new_offset_store()
3912 * - array is not engaged in resync/recovery/reshape in level_store()
3918 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) || in level_store()
4293 if (mddev->pers && !test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) in resync_start_store()
4803 unsigned long recovery = mddev->recovery; in md_sync_action() local
4809 if (test_bit(MD_RECOVERY_FROZEN, &recovery)) in md_sync_action()
4823 if (!test_bit(MD_RECOVERY_RUNNING, &recovery) && in md_sync_action()
4824 !test_bit(MD_RECOVERY_NEEDED, &recovery)) in md_sync_action()
4827 if (test_bit(MD_RECOVERY_RESHAPE, &recovery) || in md_sync_action()
4831 if (test_bit(MD_RECOVERY_RECOVER, &recovery)) in md_sync_action()
4834 if (test_bit(MD_RECOVERY_SYNC, &recovery)) { in md_sync_action()
4839 if (test_bit(MD_RECOVERY_CHECK, &recovery)) in md_sync_action()
4841 if (test_bit(MD_RECOVERY_REQUESTED, &recovery)) in md_sync_action()
4889 if (!test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in stop_sync_thread()
4897 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in stop_sync_thread()
4907 !test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) || in stop_sync_thread()
4908 (!test_bit(MD_RECOVERY_FROZEN, &mddev->recovery) && in stop_sync_thread()
4919 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in md_idle_sync_thread()
4928 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in md_frozen_sync_thread()
4937 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in md_unfrozen_sync_thread()
4938 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_unfrozen_sync_thread()
4954 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in mddev_start_reshape()
4964 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in mddev_start_reshape()
4996 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in action_store()
5019 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
5023 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
5029 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
5030 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in action_store()
5033 set_bit(MD_RECOVERY_CHECK, &mddev->recovery); in action_store()
5036 set_bit(MD_RECOVERY_REQUESTED, &mddev->recovery); in action_store()
5037 set_bit(MD_RECOVERY_SYNC, &mddev->recovery); in action_store()
5041 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
5057 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in action_store()
5204 if (!test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in sync_completed_show()
5211 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) || in sync_completed_show()
5212 test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)) in sync_completed_show()
5245 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in min_sync_store()
5288 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in max_sync_store()
6159 mddev->recovery = 0; in md_run()
6241 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_run()
6242 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_run()
6307 set_bit(MD_RECOVERY_WAIT, &mddev->recovery); in md_start()
6309 clear_bit(MD_RECOVERY_WAIT, &mddev->recovery); in md_start()
6350 /* Kick recovery or resync if necessary */ in restart_array()
6351 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in restart_array()
6398 mddev->recovery = 0; in md_clean()
6441 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in md_stop_writes()
6477 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in __md_stop()
6506 if (!test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) { in md_set_readonly()
6508 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in md_set_readonly()
6516 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in md_set_readonly()
6534 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in md_set_readonly()
6535 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_set_readonly()
6552 if (!test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) { in do_md_stop()
6554 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in do_md_stop()
6560 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in do_md_stop()
6563 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in do_md_stop()
6564 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in do_md_stop()
7172 * Kick recovery, maybe this spare has to be added to the in hot_add_disk()
7175 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in hot_add_disk()
7191 if (mddev->recovery || mddev->sync_thread) in set_bitmap_file()
7386 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in update_size()
7422 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) || in update_raid_disks()
7423 test_bit(MD_RESYNCING_REMOTE, &mddev->recovery) || in update_raid_disks()
7520 if (mddev->recovery || mddev->sync_thread) { in update_array_info()
7824 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_ioctl()
8137 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_error()
8139 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_error()
8141 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_error()
8190 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) || in status_resync()
8191 test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)) in status_resync()
8198 if (test_bit(MD_RECOVERY_DONE, &mddev->recovery)) in status_resync()
8217 if (test_bit(MD_RESYNCING_REMOTE, &mddev->recovery)) { in status_resync()
8271 (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)? in status_resync()
8273 (test_bit(MD_RECOVERY_CHECK, &mddev->recovery)? in status_resync()
8275 (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) ? in status_resync()
8276 "resync" : "recovery"))), in status_resync()
8648 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_done_sync()
8649 set_bit(MD_RECOVERY_ERROR, &mddev->recovery); in md_done_sync()
8651 // stop recovery, signal do_sync .... in md_done_sync()
8674 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_write_start()
8934 * complete before we start doing a recovery. in md_sync_position()
8937 * recovery has checked that bit and skipped that in md_sync_position()
8972 if (test_bit(MD_RECOVERY_DONE, &mddev->recovery)) in md_do_sync()
8975 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
8978 if (test_bit(MD_RECOVERY_WAIT, &mddev->recovery) || in md_do_sync()
8980 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_do_sync()
8990 if (!(test_bit(MD_RECOVERY_SYNC, &mddev->recovery) || in md_do_sync()
8991 test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) || in md_do_sync()
8992 test_bit(MD_RECOVERY_RECOVER, &mddev->recovery)) in md_do_sync()
9018 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
9047 if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery) && in md_do_sync()
9115 if (!test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_do_sync()
9128 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) && in md_do_sync()
9137 !test_bit(MD_RECOVERY_INTR, &mddev->recovery)) { in md_do_sync()
9146 &mddev->recovery)); in md_do_sync()
9149 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
9155 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_do_sync()
9164 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
9196 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
9229 test_bit(MD_RECOVERY_INTR, &mddev->recovery) in md_do_sync()
9237 if (!test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_do_sync()
9238 !test_bit(MD_RECOVERY_INTR, &mddev->recovery) && in md_do_sync()
9245 if (!test_bit(MD_RECOVERY_CHECK, &mddev->recovery) && in md_do_sync()
9247 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) { in md_do_sync()
9248 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) { in md_do_sync()
9253 &mddev->recovery)) in md_do_sync()
9263 if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
9265 if (!test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_do_sync()
9266 test_bit(MD_RECOVERY_RECOVER, &mddev->recovery)) { in md_do_sync()
9287 if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_do_sync()
9288 !test_bit(MD_RECOVERY_INTR, &mddev->recovery) && in md_do_sync()
9302 if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery)) { in md_do_sync()
9304 if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) in md_do_sync()
9307 } else if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) in md_do_sync()
9309 set_bit(MD_RECOVERY_DONE, &mddev->recovery); in md_do_sync()
9410 if (this && test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in remove_and_add_spares()
9462 set_bit(MD_RECOVERY_RESHAPE, &mddev->recovery); in md_choose_sync_action()
9463 clear_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_choose_sync_action()
9469 set_bit(MD_RECOVERY_SYNC, &mddev->recovery); in md_choose_sync_action()
9470 clear_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_choose_sync_action()
9481 clear_bit(MD_RECOVERY_SYNC, &mddev->recovery); in md_choose_sync_action()
9482 clear_bit(MD_RECOVERY_CHECK, &mddev->recovery); in md_choose_sync_action()
9483 clear_bit(MD_RECOVERY_REQUESTED, &mddev->recovery); in md_choose_sync_action()
9485 /* Start new recovery. */ in md_choose_sync_action()
9486 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_choose_sync_action()
9491 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) in md_choose_sync_action()
9541 name = test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) ? in md_start_sync()
9567 clear_bit(MD_RECOVERY_SYNC, &mddev->recovery); in md_start_sync()
9568 clear_bit(MD_RECOVERY_RESHAPE, &mddev->recovery); in md_start_sync()
9569 clear_bit(MD_RECOVERY_REQUESTED, &mddev->recovery); in md_start_sync()
9570 clear_bit(MD_RECOVERY_CHECK, &mddev->recovery); in md_start_sync()
9571 clear_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_start_sync()
9583 if (test_and_clear_bit(MD_RECOVERY_RECOVER, &mddev->recovery) && in md_start_sync()
9590 if (!test_bit(MD_RECOVERY_DONE, &mddev->recovery)) { in unregister_sync_thread()
9591 /* resync/recovery still happening */ in unregister_sync_thread()
9592 clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in unregister_sync_thread()
9606 * need this as they never do any recovery or update the superblock.
9611 * "->recovery" and create a thread at ->sync_thread.
9618 * 2/ If a recovery thread is running, don't do anything else.
9619 * 3/ If recovery has finished, clean up, possibly marking spares active.
9639 !test_bit(MD_RECOVERY_NEEDED, &mddev->recovery) && in md_check_recovery()
9640 !test_bit(MD_RECOVERY_DONE, &mddev->recovery)) in md_check_recovery()
9644 test_bit(MD_RECOVERY_NEEDED, &mddev->recovery) || in md_check_recovery()
9645 test_bit(MD_RECOVERY_DONE, &mddev->recovery) || in md_check_recovery()
9661 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in md_check_recovery()
9680 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_check_recovery()
9688 set_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_check_recovery()
9692 clear_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_check_recovery()
9693 clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_check_recovery()
9724 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in md_check_recovery()
9734 set_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_check_recovery()
9739 clear_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_check_recovery()
9740 clear_bit(MD_RECOVERY_DONE, &mddev->recovery); in md_check_recovery()
9742 if (test_and_clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery) && in md_check_recovery()
9743 !test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) { in md_check_recovery()
9746 clear_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_check_recovery()
9767 if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery) && in md_reap_sync_thread()
9768 !test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery) && in md_reap_sync_thread()
9777 if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_reap_sync_thread()
9797 clear_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_reap_sync_thread()
9798 clear_bit(MD_RECOVERY_DONE, &mddev->recovery); in md_reap_sync_thread()
9799 clear_bit(MD_RECOVERY_SYNC, &mddev->recovery); in md_reap_sync_thread()
9800 clear_bit(MD_RECOVERY_RESHAPE, &mddev->recovery); in md_reap_sync_thread()
9801 clear_bit(MD_RECOVERY_REQUESTED, &mddev->recovery); in md_reap_sync_thread()
9802 clear_bit(MD_RECOVERY_CHECK, &mddev->recovery); in md_reap_sync_thread()
9811 /* flag recovery needed just to double check */ in md_reap_sync_thread()
9812 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_reap_sync_thread()
10053 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in check_sb_changes()
10058 * as faulty. The recovery is performed by the in check_sb_changes()
10079 if (test_bit(MD_RESYNCING_REMOTE, &mddev->recovery) && in check_sb_changes()
10090 } else if (test_bit(MD_RESYNCING_REMOTE, &mddev->recovery) && in check_sb_changes()
10138 /* The other node finished recovery, call spare_active to set in read_rdev()