Lines Matching full:recovery

497 	set_bit(MD_RECOVERY_NEEDED, &mddev->recovery);  in mddev_resume()
1369 /* active but not in sync implies recovery up to in super_90_validate()
1927 &mddev->recovery)) in super_1_validate()
2438 /* May as well allow recovery to be retried once */ in bind_rdev_to_array()
2668 * curr_resync_completed can only be used during recovery. in md_update_sb()
2675 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) && in md_update_sb()
2676 test_bit(MD_RECOVERY_RECOVER, &mddev->recovery) && in md_update_sb()
2677 !test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_update_sb()
2725 * then a recovery will happen and soon that array won't in md_update_sb()
2811 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in md_update_sb()
2853 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in add_bound_rdev()
2854 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in add_bound_rdev()
3003 set_bit(MD_RECOVERY_NEEDED, &rdev->mddev->recovery); in state_store()
3035 * check if recovery is needed. in state_store()
3041 set_bit(MD_RECOVERY_NEEDED, &rdev->mddev->recovery); in state_store()
3168 set_bit(MD_RECOVERY_NEEDED, &rdev->mddev->recovery); in slot_store()
3179 if (test_bit(MD_RECOVERY_RUNNING, &rdev->mddev->recovery)) in slot_store()
3264 test_bit(MD_RECOVERY_RUNNING,&mddev->recovery)) in new_offset_store()
3908 * - array is not engaged in resync/recovery/reshape in level_store()
3915 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) || in level_store()
4265 if (mddev->pers && !test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) in resync_start_store()
4764 unsigned long recovery = mddev->recovery; in action_show() local
4765 if (test_bit(MD_RECOVERY_FROZEN, &recovery)) in action_show()
4767 else if (test_bit(MD_RECOVERY_RUNNING, &recovery) || in action_show()
4768 (!mddev->ro && test_bit(MD_RECOVERY_NEEDED, &recovery))) { in action_show()
4769 if (test_bit(MD_RECOVERY_RESHAPE, &recovery)) in action_show()
4771 else if (test_bit(MD_RECOVERY_SYNC, &recovery)) { in action_show()
4772 if (!test_bit(MD_RECOVERY_REQUESTED, &recovery)) in action_show()
4774 else if (test_bit(MD_RECOVERY_CHECK, &recovery)) in action_show()
4778 } else if (test_bit(MD_RECOVERY_RECOVER, &recovery)) in action_show()
4795 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
4797 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
4798 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) && in action_store()
4806 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in action_store()
4816 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in action_store()
4821 } else if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in action_store()
4824 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
4826 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
4827 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in action_store()
4834 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in action_store()
4837 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
4847 set_bit(MD_RECOVERY_CHECK, &mddev->recovery); in action_store()
4850 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
4851 set_bit(MD_RECOVERY_REQUESTED, &mddev->recovery); in action_store()
4852 set_bit(MD_RECOVERY_SYNC, &mddev->recovery); in action_store()
4861 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in action_store()
5003 if (!test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in sync_completed_show()
5010 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) || in sync_completed_show()
5011 test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)) in sync_completed_show()
5044 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in min_sync_store()
5088 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in max_sync_store()
5914 mddev->recovery = 0; in md_run()
6022 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_run()
6023 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_run()
6086 set_bit(MD_RECOVERY_WAIT, &mddev->recovery); in md_start()
6089 clear_bit(MD_RECOVERY_WAIT, &mddev->recovery); in md_start()
6130 /* Kick recovery or resync if necessary */ in restart_array()
6131 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in restart_array()
6171 mddev->recovery = 0; in md_clean()
6189 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in __md_stop_writes()
6193 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in __md_stop_writes()
6256 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in __md_stop()
6277 if (!test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) { in md_set_readonly()
6279 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in md_set_readonly()
6282 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in md_set_readonly()
6283 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_set_readonly()
6293 &mddev->recovery)); in md_set_readonly()
6301 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in md_set_readonly()
6304 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in md_set_readonly()
6305 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_set_readonly()
6319 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in md_set_readonly()
6320 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_set_readonly()
6341 if (!test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) { in do_md_stop()
6343 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in do_md_stop()
6346 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in do_md_stop()
6347 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in do_md_stop()
6356 &mddev->recovery))); in do_md_stop()
6363 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in do_md_stop()
6367 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in do_md_stop()
6368 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in do_md_stop()
6991 * Kick recovery, maybe this spare has to be added to the in hot_add_disk()
6994 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in hot_add_disk()
7011 if (mddev->recovery || mddev->sync_thread) in set_bitmap_file()
7204 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) || in update_size()
7243 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) || in update_raid_disks()
7244 test_bit(MD_RESYNCING_REMOTE, &mddev->recovery) || in update_raid_disks()
7341 if (mddev->recovery || mddev->sync_thread) { in update_array_info()
7540 /* need to ensure recovery thread has run */ in md_ioctl()
7543 &mddev->recovery), in md_ioctl()
7665 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_ioctl()
7969 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_error()
7971 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_error()
7973 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_error()
8009 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) || in status_resync()
8010 test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)) in status_resync()
8017 if (test_bit(MD_RECOVERY_DONE, &mddev->recovery)) in status_resync()
8036 if (test_bit(MD_RESYNCING_REMOTE, &mddev->recovery)) { in status_resync()
8090 (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)? in status_resync()
8092 (test_bit(MD_RECOVERY_CHECK, &mddev->recovery)? in status_resync()
8094 (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) ? in status_resync()
8095 "resync" : "recovery"))), in status_resync()
8483 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_done_sync()
8484 set_bit(MD_RECOVERY_ERROR, &mddev->recovery); in md_done_sync()
8486 // stop recovery, signal do_sync .... in md_done_sync()
8509 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_write_start()
8709 if (test_bit(MD_RECOVERY_DONE, &mddev->recovery) || in md_do_sync()
8710 test_bit(MD_RECOVERY_WAIT, &mddev->recovery)) in md_do_sync()
8713 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_do_sync()
8723 if (!(test_bit(MD_RECOVERY_SYNC, &mddev->recovery) || in md_do_sync()
8724 test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) || in md_do_sync()
8725 test_bit(MD_RECOVERY_RECOVER, &mddev->recovery)) in md_do_sync()
8731 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) { in md_do_sync()
8732 if (test_bit(MD_RECOVERY_CHECK, &mddev->recovery)) { in md_do_sync()
8735 } else if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) { in md_do_sync()
8740 } else if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)) in md_do_sync()
8743 desc = "recovery"; in md_do_sync()
8762 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
8791 if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery) && in md_do_sync()
8814 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) { in md_do_sync()
8821 if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) in md_do_sync()
8826 } else if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)) { in md_do_sync()
8837 /* recovery follows the physical size of devices */ in md_do_sync()
8852 * complete before we start doing a recovery. in md_do_sync()
8855 * recovery has checked that bit and skipped that in md_do_sync()
8907 if (!test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_do_sync()
8920 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) && in md_do_sync()
8929 !test_bit(MD_RECOVERY_INTR, &mddev->recovery)) { in md_do_sync()
8938 &mddev->recovery)); in md_do_sync()
8941 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
8946 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_do_sync()
8955 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
8987 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
9020 test_bit(MD_RECOVERY_INTR, &mddev->recovery) in md_do_sync()
9028 if (!test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_do_sync()
9029 !test_bit(MD_RECOVERY_INTR, &mddev->recovery) && in md_do_sync()
9036 if (!test_bit(MD_RECOVERY_CHECK, &mddev->recovery) && in md_do_sync()
9038 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) { in md_do_sync()
9039 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) { in md_do_sync()
9044 &mddev->recovery)) in md_do_sync()
9054 if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
9056 if (!test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_do_sync()
9057 test_bit(MD_RECOVERY_RECOVER, &mddev->recovery)) { in md_do_sync()
9078 if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_do_sync()
9079 !test_bit(MD_RECOVERY_INTR, &mddev->recovery) && in md_do_sync()
9093 if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery)) { in md_do_sync()
9095 if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) in md_do_sync()
9098 } else if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) in md_do_sync()
9100 set_bit(MD_RECOVERY_DONE, &mddev->recovery); in md_do_sync()
9118 if (this && test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in remove_and_add_spares()
9214 clear_bit(MD_RECOVERY_SYNC, &mddev->recovery); in md_start_sync()
9215 clear_bit(MD_RECOVERY_RESHAPE, &mddev->recovery); in md_start_sync()
9216 clear_bit(MD_RECOVERY_REQUESTED, &mddev->recovery); in md_start_sync()
9217 clear_bit(MD_RECOVERY_CHECK, &mddev->recovery); in md_start_sync()
9218 clear_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_start_sync()
9221 &mddev->recovery)) in md_start_sync()
9234 * need this as they never do any recovery or update the superblock.
9239 * "->recovery" and create a thread at ->sync_thread.
9246 * 2/ If a recovery thread is running, don't do anything else.
9247 * 3/ If recovery has finished, clean up, possibly marking spares active.
9281 if (mddev->ro && !test_bit(MD_RECOVERY_NEEDED, &mddev->recovery)) in md_check_recovery()
9285 test_bit(MD_RECOVERY_NEEDED, &mddev->recovery) || in md_check_recovery()
9286 test_bit(MD_RECOVERY_DONE, &mddev->recovery) || in md_check_recovery()
9321 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_check_recovery()
9324 clear_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_check_recovery()
9325 clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_check_recovery()
9351 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) && in md_check_recovery()
9352 !test_bit(MD_RECOVERY_DONE, &mddev->recovery)) { in md_check_recovery()
9353 /* resync/recovery still happening */ in md_check_recovery()
9354 clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_check_recovery()
9367 set_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_check_recovery()
9372 clear_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_check_recovery()
9373 clear_bit(MD_RECOVERY_DONE, &mddev->recovery); in md_check_recovery()
9375 if (!test_and_clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery) || in md_check_recovery()
9376 test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) in md_check_recovery()
9378 /* no recovery is running. in md_check_recovery()
9390 set_bit(MD_RECOVERY_RESHAPE, &mddev->recovery); in md_check_recovery()
9391 clear_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_check_recovery()
9393 clear_bit(MD_RECOVERY_SYNC, &mddev->recovery); in md_check_recovery()
9394 clear_bit(MD_RECOVERY_CHECK, &mddev->recovery); in md_check_recovery()
9395 clear_bit(MD_RECOVERY_REQUESTED, &mddev->recovery); in md_check_recovery()
9396 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_check_recovery()
9398 set_bit(MD_RECOVERY_SYNC, &mddev->recovery); in md_check_recovery()
9399 clear_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_check_recovery()
9400 } else if (!test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) in md_check_recovery()
9418 clear_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_check_recovery()
9421 &mddev->recovery)) in md_check_recovery()
9439 if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery) && in md_reap_sync_thread()
9440 !test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery) && in md_reap_sync_thread()
9449 if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_reap_sync_thread()
9469 clear_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_reap_sync_thread()
9470 clear_bit(MD_RECOVERY_DONE, &mddev->recovery); in md_reap_sync_thread()
9471 clear_bit(MD_RECOVERY_SYNC, &mddev->recovery); in md_reap_sync_thread()
9472 clear_bit(MD_RECOVERY_RESHAPE, &mddev->recovery); in md_reap_sync_thread()
9473 clear_bit(MD_RECOVERY_REQUESTED, &mddev->recovery); in md_reap_sync_thread()
9474 clear_bit(MD_RECOVERY_CHECK, &mddev->recovery); in md_reap_sync_thread()
9484 /* flag recovery needed just to double check */ in md_reap_sync_thread()
9485 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_reap_sync_thread()
9704 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in check_sb_changes()
9709 * as faulty. The recovery is performed by the in check_sb_changes()
9730 if (test_bit(MD_RESYNCING_REMOTE, &mddev->recovery) && in check_sb_changes()
9741 } else if (test_bit(MD_RESYNCING_REMOTE, &mddev->recovery) && in check_sb_changes()
9789 /* The other node finished recovery, call spare_active to set in read_rdev()