Lines Matching full:recovery

513 	set_bit(MD_RECOVERY_NEEDED, &mddev->recovery);  in mddev_resume()
1395 /* active but not in sync implies recovery up to in super_90_validate()
1956 &mddev->recovery)) in super_1_validate()
2468 /* May as well allow recovery to be retried once */ in bind_rdev_to_array()
2700 * curr_resync_completed can only be used during recovery. in md_update_sb()
2707 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) && in md_update_sb()
2708 test_bit(MD_RECOVERY_RECOVER, &mddev->recovery) && in md_update_sb()
2709 !test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_update_sb()
2757 * then a recovery will happen and soon that array won't in md_update_sb()
2845 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in md_update_sb()
2887 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in add_bound_rdev()
2888 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in add_bound_rdev()
3031 set_bit(MD_RECOVERY_NEEDED, &rdev->mddev->recovery); in state_store()
3061 * check if recovery is needed. in state_store()
3067 set_bit(MD_RECOVERY_NEEDED, &rdev->mddev->recovery); in state_store()
3192 set_bit(MD_RECOVERY_NEEDED, &rdev->mddev->recovery); in slot_store()
3203 if (test_bit(MD_RECOVERY_RUNNING, &rdev->mddev->recovery)) in slot_store()
3288 test_bit(MD_RECOVERY_RUNNING,&mddev->recovery)) in new_offset_store()
3937 * - array is not engaged in resync/recovery/reshape in level_store()
3944 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()
4794 unsigned long recovery = mddev->recovery; in action_show() local
4795 if (test_bit(MD_RECOVERY_FROZEN, &recovery)) in action_show()
4797 else if (test_bit(MD_RECOVERY_RUNNING, &recovery) || in action_show()
4798 (!mddev->ro && test_bit(MD_RECOVERY_NEEDED, &recovery))) { in action_show()
4799 if (test_bit(MD_RECOVERY_RESHAPE, &recovery)) in action_show()
4801 else if (test_bit(MD_RECOVERY_SYNC, &recovery)) { in action_show()
4802 if (!test_bit(MD_RECOVERY_REQUESTED, &recovery)) in action_show()
4804 else if (test_bit(MD_RECOVERY_CHECK, &recovery)) in action_show()
4808 } else if (test_bit(MD_RECOVERY_RECOVER, &recovery)) in action_show()
4825 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
4827 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
4828 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) && in action_store()
4833 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in action_store()
4838 } else if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in action_store()
4841 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
4843 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
4844 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in action_store()
4851 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in action_store()
4854 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
4864 set_bit(MD_RECOVERY_CHECK, &mddev->recovery); in action_store()
4867 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
4868 set_bit(MD_RECOVERY_REQUESTED, &mddev->recovery); in action_store()
4869 set_bit(MD_RECOVERY_SYNC, &mddev->recovery); in action_store()
4878 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in action_store()
5020 if (!test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in sync_completed_show()
5027 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) || in sync_completed_show()
5028 test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)) in sync_completed_show()
5061 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in min_sync_store()
5105 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in max_sync_store()
5926 mddev->recovery = 0; in md_run()
6031 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_run()
6032 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_run()
6098 set_bit(MD_RECOVERY_WAIT, &mddev->recovery); in md_start()
6101 clear_bit(MD_RECOVERY_WAIT, &mddev->recovery); in md_start()
6142 /* Kick recovery or resync if necessary */ in restart_array()
6143 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in restart_array()
6183 mddev->recovery = 0; in md_clean()
6201 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in __md_stop_writes()
6205 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in __md_stop_writes()
6266 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in __md_stop()
6288 if (!test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) { in md_set_readonly()
6290 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in md_set_readonly()
6293 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in md_set_readonly()
6294 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_set_readonly()
6304 &mddev->recovery)); in md_set_readonly()
6312 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in md_set_readonly()
6315 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in md_set_readonly()
6316 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_set_readonly()
6330 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in md_set_readonly()
6331 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_set_readonly()
6352 if (!test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) { in do_md_stop()
6354 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in do_md_stop()
6357 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in do_md_stop()
6358 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in do_md_stop()
6367 &mddev->recovery))); in do_md_stop()
6374 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in do_md_stop()
6378 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in do_md_stop()
6379 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in do_md_stop()
6999 * Kick recovery, maybe this spare has to be added to the in hot_add_disk()
7002 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in hot_add_disk()
7019 if (mddev->recovery || mddev->sync_thread) in set_bitmap_file()
7212 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) || in update_size()
7251 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) || in update_raid_disks()
7252 test_bit(MD_RESYNCING_REMOTE, &mddev->recovery) || in update_raid_disks()
7349 if (mddev->recovery || mddev->sync_thread) { in update_array_info()
7548 /* need to ensure recovery thread has run */ in md_ioctl()
7551 &mddev->recovery), in md_ioctl()
7673 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_ioctl()
7971 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_error()
7973 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_error()
7974 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_error()
8011 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) || in status_resync()
8012 test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)) in status_resync()
8019 if (test_bit(MD_RECOVERY_DONE, &mddev->recovery)) in status_resync()
8028 if (test_bit(MD_RESYNCING_REMOTE, &mddev->recovery)) { in status_resync()
8082 (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)? in status_resync()
8084 (test_bit(MD_RECOVERY_CHECK, &mddev->recovery)? in status_resync()
8086 (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) ? in status_resync()
8087 "resync" : "recovery"))), in status_resync()
8465 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_done_sync()
8466 set_bit(MD_RECOVERY_ERROR, &mddev->recovery); in md_done_sync()
8468 // stop recovery, signal do_sync .... in md_done_sync()
8491 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_write_start()
8674 if (test_bit(MD_RECOVERY_DONE, &mddev->recovery) || in md_do_sync()
8675 test_bit(MD_RECOVERY_WAIT, &mddev->recovery)) in md_do_sync()
8678 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_do_sync()
8688 if (!(test_bit(MD_RECOVERY_SYNC, &mddev->recovery) || in md_do_sync()
8689 test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) || in md_do_sync()
8690 test_bit(MD_RECOVERY_RECOVER, &mddev->recovery)) in md_do_sync()
8696 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) { in md_do_sync()
8697 if (test_bit(MD_RECOVERY_CHECK, &mddev->recovery)) { in md_do_sync()
8700 } else if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) { in md_do_sync()
8705 } else if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)) in md_do_sync()
8708 desc = "recovery"; in md_do_sync()
8733 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
8757 if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery) && in md_do_sync()
8778 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) { in md_do_sync()
8785 if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) in md_do_sync()
8790 } else if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)) { in md_do_sync()
8801 /* recovery follows the physical size of devices */ in md_do_sync()
8816 * complete before we start doing a recovery. in md_do_sync()
8819 * recovery has checked that bit and skipped that in md_do_sync()
8871 if (!test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_do_sync()
8884 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) && in md_do_sync()
8893 !test_bit(MD_RECOVERY_INTR, &mddev->recovery)) { in md_do_sync()
8902 &mddev->recovery)); in md_do_sync()
8905 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
8910 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_do_sync()
8919 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
8951 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
8984 test_bit(MD_RECOVERY_INTR, &mddev->recovery) in md_do_sync()
8992 if (!test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_do_sync()
8993 !test_bit(MD_RECOVERY_INTR, &mddev->recovery) && in md_do_sync()
9000 if (!test_bit(MD_RECOVERY_CHECK, &mddev->recovery) && in md_do_sync()
9002 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) { in md_do_sync()
9003 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) { in md_do_sync()
9008 &mddev->recovery)) in md_do_sync()
9018 if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
9020 if (!test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_do_sync()
9021 test_bit(MD_RECOVERY_RECOVER, &mddev->recovery)) { in md_do_sync()
9042 if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_do_sync()
9043 !test_bit(MD_RECOVERY_INTR, &mddev->recovery) && in md_do_sync()
9057 if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery)) { in md_do_sync()
9059 if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) in md_do_sync()
9062 } else if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) in md_do_sync()
9064 set_bit(MD_RECOVERY_DONE, &mddev->recovery); in md_do_sync()
9082 if (this && test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in remove_and_add_spares()
9178 clear_bit(MD_RECOVERY_SYNC, &mddev->recovery); in md_start_sync()
9179 clear_bit(MD_RECOVERY_RESHAPE, &mddev->recovery); in md_start_sync()
9180 clear_bit(MD_RECOVERY_REQUESTED, &mddev->recovery); in md_start_sync()
9181 clear_bit(MD_RECOVERY_CHECK, &mddev->recovery); in md_start_sync()
9182 clear_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_start_sync()
9185 &mddev->recovery)) in md_start_sync()
9198 * need this as they never do any recovery or update the superblock.
9203 * "->recovery" and create a thread at ->sync_thread.
9210 * 2/ If a recovery thread is running, don't do anything else.
9211 * 3/ If recovery has finished, clean up, possibly marking spares active.
9245 if (mddev->ro && !test_bit(MD_RECOVERY_NEEDED, &mddev->recovery)) in md_check_recovery()
9249 test_bit(MD_RECOVERY_NEEDED, &mddev->recovery) || in md_check_recovery()
9250 test_bit(MD_RECOVERY_DONE, &mddev->recovery) || in md_check_recovery()
9285 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_check_recovery()
9287 clear_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_check_recovery()
9288 clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_check_recovery()
9314 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) && in md_check_recovery()
9315 !test_bit(MD_RECOVERY_DONE, &mddev->recovery)) { in md_check_recovery()
9316 /* resync/recovery still happening */ in md_check_recovery()
9317 clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_check_recovery()
9329 set_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_check_recovery()
9334 clear_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_check_recovery()
9335 clear_bit(MD_RECOVERY_DONE, &mddev->recovery); in md_check_recovery()
9337 if (!test_and_clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery) || in md_check_recovery()
9338 test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) in md_check_recovery()
9340 /* no recovery is running. in md_check_recovery()
9352 set_bit(MD_RECOVERY_RESHAPE, &mddev->recovery); in md_check_recovery()
9353 clear_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_check_recovery()
9355 clear_bit(MD_RECOVERY_SYNC, &mddev->recovery); in md_check_recovery()
9356 clear_bit(MD_RECOVERY_CHECK, &mddev->recovery); in md_check_recovery()
9357 clear_bit(MD_RECOVERY_REQUESTED, &mddev->recovery); in md_check_recovery()
9358 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_check_recovery()
9360 set_bit(MD_RECOVERY_SYNC, &mddev->recovery); in md_check_recovery()
9361 clear_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_check_recovery()
9362 } else if (!test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) in md_check_recovery()
9380 clear_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_check_recovery()
9383 &mddev->recovery)) in md_check_recovery()
9402 if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery) && in md_reap_sync_thread()
9403 !test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery) && in md_reap_sync_thread()
9412 if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_reap_sync_thread()
9432 clear_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_reap_sync_thread()
9433 clear_bit(MD_RECOVERY_DONE, &mddev->recovery); in md_reap_sync_thread()
9434 clear_bit(MD_RECOVERY_SYNC, &mddev->recovery); in md_reap_sync_thread()
9435 clear_bit(MD_RECOVERY_RESHAPE, &mddev->recovery); in md_reap_sync_thread()
9436 clear_bit(MD_RECOVERY_REQUESTED, &mddev->recovery); in md_reap_sync_thread()
9437 clear_bit(MD_RECOVERY_CHECK, &mddev->recovery); in md_reap_sync_thread()
9447 /* flag recovery needed just to double check */ in md_reap_sync_thread()
9448 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_reap_sync_thread()
9659 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in check_sb_changes()
9664 * as faulty. The recovery is performed by the in check_sb_changes()
9684 if (test_bit(MD_RESYNCING_REMOTE, &mddev->recovery) && in check_sb_changes()
9695 } else if (test_bit(MD_RESYNCING_REMOTE, &mddev->recovery) && in check_sb_changes()
9743 /* The other node finished recovery, call spare_active to set in read_rdev()