Lines Matching full:recovery

476 	set_bit(MD_RECOVERY_NEEDED, &mddev->recovery);  in mddev_resume()
1390 /* active but not in sync implies recovery up to in super_90_validate()
1980 &mddev->recovery)) in super_1_validate()
2491 /* May as well allow recovery to be retried once */ in bind_rdev_to_array()
2688 * curr_resync_completed can only be used during recovery. in md_update_sb()
2695 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) && in md_update_sb()
2696 test_bit(MD_RECOVERY_RECOVER, &mddev->recovery) && in md_update_sb()
2697 !test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_update_sb()
2745 * then a recovery will happen and soon that array won't in md_update_sb()
2831 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in md_update_sb()
2873 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in add_bound_rdev()
2874 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in add_bound_rdev()
3023 set_bit(MD_RECOVERY_NEEDED, &rdev->mddev->recovery); in state_store()
3055 * check if recovery is needed. in state_store()
3061 set_bit(MD_RECOVERY_NEEDED, &rdev->mddev->recovery); in state_store()
3191 set_bit(MD_RECOVERY_NEEDED, &rdev->mddev->recovery); in slot_store()
3202 if (test_bit(MD_RECOVERY_RUNNING, &rdev->mddev->recovery)) in slot_store()
3287 test_bit(MD_RECOVERY_RUNNING,&mddev->recovery)) in new_offset_store()
3956 * - array is not engaged in resync/recovery/reshape in level_store()
3963 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) || in level_store()
4313 if (mddev->pers && !test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) in resync_start_store()
4800 unsigned long recovery = mddev->recovery; in action_show() local
4801 if (test_bit(MD_RECOVERY_FROZEN, &recovery)) in action_show()
4803 else if (test_bit(MD_RECOVERY_RUNNING, &recovery) || in action_show()
4804 (md_is_rdwr(mddev) && test_bit(MD_RECOVERY_NEEDED, &recovery))) { in action_show()
4805 if (test_bit(MD_RECOVERY_RESHAPE, &recovery)) in action_show()
4807 else if (test_bit(MD_RECOVERY_SYNC, &recovery)) { in action_show()
4808 if (!test_bit(MD_RECOVERY_REQUESTED, &recovery)) in action_show()
4810 else if (test_bit(MD_RECOVERY_CHECK, &recovery)) in action_show()
4814 } else if (test_bit(MD_RECOVERY_RECOVER, &recovery)) in action_show()
4824 if (!test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in stop_sync_thread()
4834 if (!test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in stop_sync_thread()
4842 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in stop_sync_thread()
4857 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in idle_sync_thread()
4861 !test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)); in idle_sync_thread()
4869 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in frozen_sync_thread()
4873 !test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)); in frozen_sync_thread()
4889 else if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in action_store()
4892 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
4894 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
4895 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in action_store()
4902 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in action_store()
4907 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
4916 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
4925 set_bit(MD_RECOVERY_CHECK, &mddev->recovery); in action_store()
4928 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in action_store()
4929 set_bit(MD_RECOVERY_REQUESTED, &mddev->recovery); in action_store()
4930 set_bit(MD_RECOVERY_SYNC, &mddev->recovery); in action_store()
4939 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in action_store()
5081 if (!test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in sync_completed_show()
5088 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) || in sync_completed_show()
5089 test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)) in sync_completed_show()
5122 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in min_sync_store()
5165 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in max_sync_store()
6008 mddev->recovery = 0; in md_run()
6116 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_run()
6117 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_run()
6184 set_bit(MD_RECOVERY_WAIT, &mddev->recovery); in md_start()
6187 clear_bit(MD_RECOVERY_WAIT, &mddev->recovery); in md_start()
6228 /* Kick recovery or resync if necessary */ in restart_array()
6229 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in restart_array()
6277 mddev->recovery = 0; in md_clean()
6295 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in __md_stop_writes()
6299 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in __md_stop_writes()
6361 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in __md_stop()
6391 if (!test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) { in md_set_readonly()
6393 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in md_set_readonly()
6396 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in md_set_readonly()
6397 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_set_readonly()
6407 &mddev->recovery)); in md_set_readonly()
6415 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in md_set_readonly()
6435 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in md_set_readonly()
6436 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_set_readonly()
6456 if (!test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) { in do_md_stop()
6458 set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in do_md_stop()
6461 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in do_md_stop()
6462 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in do_md_stop()
6473 &mddev->recovery))); in do_md_stop()
6480 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in do_md_stop()
6484 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); in do_md_stop()
6485 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in do_md_stop()
7107 * Kick recovery, maybe this spare has to be added to the in hot_add_disk()
7110 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in hot_add_disk()
7127 if (mddev->recovery || mddev->sync_thread) in set_bitmap_file()
7329 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) || in update_size()
7368 test_bit(MD_RECOVERY_RUNNING, &mddev->recovery) || in update_raid_disks()
7369 test_bit(MD_RESYNCING_REMOTE, &mddev->recovery) || in update_raid_disks()
7466 if (mddev->recovery || mddev->sync_thread) { in update_array_info()
7782 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_ioctl()
8092 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_error()
8094 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_error()
8096 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_error()
8145 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) || in status_resync()
8146 test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)) in status_resync()
8153 if (test_bit(MD_RECOVERY_DONE, &mddev->recovery)) in status_resync()
8172 if (test_bit(MD_RESYNCING_REMOTE, &mddev->recovery)) { in status_resync()
8226 (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)? in status_resync()
8228 (test_bit(MD_RECOVERY_CHECK, &mddev->recovery)? in status_resync()
8230 (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) ? in status_resync()
8231 "resync" : "recovery"))), in status_resync()
8596 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_done_sync()
8597 set_bit(MD_RECOVERY_ERROR, &mddev->recovery); in md_done_sync()
8599 // stop recovery, signal do_sync .... in md_done_sync()
8622 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_write_start()
8837 if (test_bit(MD_RECOVERY_DONE, &mddev->recovery) || in md_do_sync()
8838 test_bit(MD_RECOVERY_WAIT, &mddev->recovery)) in md_do_sync()
8841 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_do_sync()
8851 if (!(test_bit(MD_RECOVERY_SYNC, &mddev->recovery) || in md_do_sync()
8852 test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) || in md_do_sync()
8853 test_bit(MD_RECOVERY_RECOVER, &mddev->recovery)) in md_do_sync()
8859 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) { in md_do_sync()
8860 if (test_bit(MD_RECOVERY_CHECK, &mddev->recovery)) { in md_do_sync()
8863 } else if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) { in md_do_sync()
8868 } else if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)) in md_do_sync()
8871 desc = "recovery"; in md_do_sync()
8890 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
8919 if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery) && in md_do_sync()
8942 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) { in md_do_sync()
8949 if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) in md_do_sync()
8954 } else if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)) { in md_do_sync()
8965 /* recovery follows the physical size of devices */ in md_do_sync()
8980 * complete before we start doing a recovery. in md_do_sync()
8983 * recovery has checked that bit and skipped that in md_do_sync()
9035 if (!test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_do_sync()
9048 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) && in md_do_sync()
9057 !test_bit(MD_RECOVERY_INTR, &mddev->recovery)) { in md_do_sync()
9066 &mddev->recovery)); in md_do_sync()
9069 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
9074 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_do_sync()
9083 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
9115 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
9148 test_bit(MD_RECOVERY_INTR, &mddev->recovery) in md_do_sync()
9156 if (!test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_do_sync()
9157 !test_bit(MD_RECOVERY_INTR, &mddev->recovery) && in md_do_sync()
9164 if (!test_bit(MD_RECOVERY_CHECK, &mddev->recovery) && in md_do_sync()
9166 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) { in md_do_sync()
9167 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) { in md_do_sync()
9172 &mddev->recovery)) in md_do_sync()
9182 if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery)) in md_do_sync()
9184 if (!test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_do_sync()
9185 test_bit(MD_RECOVERY_RECOVER, &mddev->recovery)) { in md_do_sync()
9206 if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_do_sync()
9207 !test_bit(MD_RECOVERY_INTR, &mddev->recovery) && in md_do_sync()
9221 if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery)) { in md_do_sync()
9223 if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) in md_do_sync()
9226 } else if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) in md_do_sync()
9228 set_bit(MD_RECOVERY_DONE, &mddev->recovery); in md_do_sync()
9247 if (this && test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in remove_and_add_spares()
9342 clear_bit(MD_RECOVERY_SYNC, &mddev->recovery); in md_start_sync()
9343 clear_bit(MD_RECOVERY_RESHAPE, &mddev->recovery); in md_start_sync()
9344 clear_bit(MD_RECOVERY_REQUESTED, &mddev->recovery); in md_start_sync()
9345 clear_bit(MD_RECOVERY_CHECK, &mddev->recovery); in md_start_sync()
9346 clear_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_start_sync()
9349 &mddev->recovery)) in md_start_sync()
9362 * need this as they never do any recovery or update the superblock.
9367 * "->recovery" and create a thread at ->sync_thread.
9374 * 2/ If a recovery thread is running, don't do anything else.
9375 * 3/ If recovery has finished, clean up, possibly marking spares active.
9410 !test_bit(MD_RECOVERY_NEEDED, &mddev->recovery)) in md_check_recovery()
9414 test_bit(MD_RECOVERY_NEEDED, &mddev->recovery) || in md_check_recovery()
9415 test_bit(MD_RECOVERY_DONE, &mddev->recovery) || in md_check_recovery()
9450 set_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_check_recovery()
9452 clear_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_check_recovery()
9453 clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_check_recovery()
9483 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { in md_check_recovery()
9484 if (!test_bit(MD_RECOVERY_DONE, &mddev->recovery)) { in md_check_recovery()
9485 /* resync/recovery still happening */ in md_check_recovery()
9486 clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_check_recovery()
9502 set_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_check_recovery()
9507 clear_bit(MD_RECOVERY_INTR, &mddev->recovery); in md_check_recovery()
9508 clear_bit(MD_RECOVERY_DONE, &mddev->recovery); in md_check_recovery()
9510 if (!test_and_clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery) || in md_check_recovery()
9511 test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) in md_check_recovery()
9513 /* no recovery is running. in md_check_recovery()
9525 set_bit(MD_RECOVERY_RESHAPE, &mddev->recovery); in md_check_recovery()
9526 clear_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_check_recovery()
9528 clear_bit(MD_RECOVERY_SYNC, &mddev->recovery); in md_check_recovery()
9529 clear_bit(MD_RECOVERY_CHECK, &mddev->recovery); in md_check_recovery()
9530 clear_bit(MD_RECOVERY_REQUESTED, &mddev->recovery); in md_check_recovery()
9531 set_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_check_recovery()
9533 set_bit(MD_RECOVERY_SYNC, &mddev->recovery); in md_check_recovery()
9534 clear_bit(MD_RECOVERY_RECOVER, &mddev->recovery); in md_check_recovery()
9535 } else if (!test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) in md_check_recovery()
9552 clear_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_check_recovery()
9555 &mddev->recovery)) in md_check_recovery()
9576 if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery) && in md_reap_sync_thread()
9577 !test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery) && in md_reap_sync_thread()
9586 if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && in md_reap_sync_thread()
9606 clear_bit(MD_RECOVERY_RUNNING, &mddev->recovery); in md_reap_sync_thread()
9607 clear_bit(MD_RECOVERY_DONE, &mddev->recovery); in md_reap_sync_thread()
9608 clear_bit(MD_RECOVERY_SYNC, &mddev->recovery); in md_reap_sync_thread()
9609 clear_bit(MD_RECOVERY_RESHAPE, &mddev->recovery); in md_reap_sync_thread()
9610 clear_bit(MD_RECOVERY_REQUESTED, &mddev->recovery); in md_reap_sync_thread()
9611 clear_bit(MD_RECOVERY_CHECK, &mddev->recovery); in md_reap_sync_thread()
9620 /* flag recovery needed just to double check */ in md_reap_sync_thread()
9621 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in md_reap_sync_thread()
9842 set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); in check_sb_changes()
9847 * as faulty. The recovery is performed by the in check_sb_changes()
9868 if (test_bit(MD_RESYNCING_REMOTE, &mddev->recovery) && in check_sb_changes()
9879 } else if (test_bit(MD_RESYNCING_REMOTE, &mddev->recovery) && in check_sb_changes()
9927 /* The other node finished recovery, call spare_active to set in read_rdev()