Lines Matching full:completion

8 #include <linux/completion.h>
18 #include "completion.h"
1175 struct vdo_completion *completion = &vdo->admin.completion; in prepare_admin_completion() local
1179 * any error in the completion. in prepare_admin_completion()
1181 completion->callback = callback; in prepare_admin_completion()
1182 completion->error_handler = error_handler; in prepare_admin_completion()
1183 completion->callback_thread_id = get_thread_id_for_phase(vdo); in prepare_admin_completion()
1184 completion->requeue = true; in prepare_admin_completion()
1185 return completion; in prepare_admin_completion()
1190 * completion to run on the thread for the next phase.
1199 vdo->admin.completion.callback_thread_id = get_thread_id_for_phase(vdo); in advance_phase()
1200 vdo->admin.completion.requeue = true; in advance_phase()
1223 vdo_reset_completion(&admin->completion); in perform_admin_operation()
1235 result = admin->completion.result; in perform_admin_operation()
1252 * @completion: The admin_completion.
1254 static void finish_operation_callback(struct vdo_completion *completion) in finish_operation_callback() argument
1256 struct vdo_administrator *admin = &completion->vdo->admin; in finish_operation_callback()
1258 vdo_finish_operation(&admin->state, completion->result); in finish_operation_callback()
1386 * @completion: The admin completion.
1388 static void pre_load_callback(struct vdo_completion *completion) in pre_load_callback() argument
1390 struct vdo *vdo = completion->vdo; in pre_load_callback()
1400 vdo_continue_completion(completion, result); in pre_load_callback()
1404 vdo_load_super_block(vdo, completion); in pre_load_callback()
1408 vdo_continue_completion(completion, decode_vdo(vdo)); in pre_load_callback()
1415 vdo_set_completion_result(completion, UDS_BAD_STATE); in pre_load_callback()
1418 finish_operation_callback(completion); in pre_load_callback()
1636 * @completion: The admin completion.
1638 static void check_may_grow_physical(struct vdo_completion *completion) in check_may_grow_physical() argument
1640 struct vdo *vdo = completion->vdo; in check_may_grow_physical()
1646 vdo_set_completion_result(completion, VDO_READ_ONLY); in check_may_grow_physical()
1649 vdo_set_completion_result(completion, VDO_RETRY_AFTER_REBUILD); in check_may_grow_physical()
1651 finish_operation_callback(completion); in check_may_grow_physical()
1677 /* Make a copy completion if there isn't one */ in grow_layout()
1964 * @completion: The admin completion
1966 static void write_super_block_for_suspend(struct vdo_completion *completion) in write_super_block_for_suspend() argument
1968 struct vdo *vdo = completion->vdo; in write_super_block_for_suspend()
1985 vdo_continue_completion(completion, UDS_BAD_STATE); in write_super_block_for_suspend()
1989 vdo_save_components(vdo, completion); in write_super_block_for_suspend()
1994 * @completion: The sub-task completion.
1996 static void suspend_callback(struct vdo_completion *completion) in suspend_callback() argument
1998 struct vdo *vdo = completion->vdo; in suspend_callback()
2011 vdo_continue_completion(completion, in suspend_callback()
2023 vdo_set_completion_result(completion, VDO_READ_ONLY); in suspend_callback()
2025 vdo_drain_packer(vdo->packer, completion); in suspend_callback()
2029 drain_data_vio_pool(vdo->data_vio_pool, completion); in suspend_callback()
2033 vdo_drain_hash_zones(vdo->hash_zones, completion); in suspend_callback()
2037 vdo_drain_flusher(vdo->flusher, completion); in suspend_callback()
2051 vdo_get_admin_state_code(state), completion); in suspend_callback()
2056 completion); in suspend_callback()
2061 vdo_get_admin_state_code(state), completion); in suspend_callback()
2066 completion); in suspend_callback()
2070 vdo_wait_until_not_entering_read_only_mode(completion); in suspend_callback()
2074 if (vdo_is_state_suspending(state) || (completion->result != VDO_SUCCESS)) { in suspend_callback()
2079 write_super_block_for_suspend(completion); in suspend_callback()
2086 vdo_set_completion_result(completion, UDS_BAD_STATE); in suspend_callback()
2089 finish_operation_callback(completion); in suspend_callback()
2177 * @completion: The sub-task completion.
2179 static void load_callback(struct vdo_completion *completion) in load_callback() argument
2181 struct vdo *vdo = completion->vdo; in load_callback()
2190 vdo_continue_completion(completion, result); in load_callback()
2197 vdo_allow_read_only_mode_entry(completion); in load_callback()
2207 vdo_set_completion_result(completion, VDO_READ_ONLY); in load_callback()
2212 vdo_repair(completion); in load_callback()
2219 completion, NULL); in load_callback()
2224 vdo_save_components(vdo, completion); in load_callback()
2231 completion); in load_callback()
2238 vdo_scrub_all_unrecovered_slabs(vdo->depot, completion); in load_callback()
2259 completion); in load_callback()
2264 completion->error_handler = NULL; in load_callback()
2266 vdo_wait_until_not_entering_read_only_mode(completion); in load_callback()
2270 vdo_set_completion_result(completion, UDS_BAD_STATE); in load_callback()
2273 finish_operation_callback(completion); in load_callback()
2278 * @completion: The admin completion.
2283 static void handle_load_error(struct vdo_completion *completion) in handle_load_error() argument
2285 struct vdo *vdo = completion->vdo; in handle_load_error()
2287 if (vdo_requeue_completion_if_needed(completion, in handle_load_error()
2293 vdo_log_error_strerror(completion->result, "aborting load"); in handle_load_error()
2295 load_callback(vdo_forget(completion)); in handle_load_error()
2299 if ((completion->result == VDO_UNSUPPORTED_VERSION) && in handle_load_error()
2303 load_callback(completion); in handle_load_error()
2307 vdo_log_error_strerror(completion->result, in handle_load_error()
2310 vdo_enter_read_only_mode(vdo, completion->result); in handle_load_error()
2311 completion->result = VDO_READ_ONLY; in handle_load_error()
2312 load_callback(completion); in handle_load_error()
2317 * @completion: The admin completion
2319 static void write_super_block_for_resume(struct vdo_completion *completion) in write_super_block_for_resume() argument
2321 struct vdo *vdo = completion->vdo; in write_super_block_for_resume()
2327 vdo_save_components(vdo, completion); in write_super_block_for_resume()
2336 vdo_launch_completion(completion); in write_super_block_for_resume()
2341 vdo_continue_completion(completion, UDS_BAD_STATE); in write_super_block_for_resume()
2347 * @completion: The admin completion.
2349 static void resume_callback(struct vdo_completion *completion) in resume_callback() argument
2351 struct vdo *vdo = completion->vdo; in resume_callback()
2361 vdo_continue_completion(completion, result); in resume_callback()
2365 write_super_block_for_resume(completion); in resume_callback()
2369 vdo_allow_read_only_mode_entry(completion); in resume_callback()
2373 vdo_resume_hash_zones(vdo->hash_zones, completion); in resume_callback()
2377 vdo_resume_slab_depot(vdo->depot, completion); in resume_callback()
2381 vdo_resume_recovery_journal(vdo->recovery_journal, completion); in resume_callback()
2385 vdo_resume_block_map(vdo->block_map, completion); in resume_callback()
2389 vdo_resume_logical_zones(vdo->logical_zones, completion); in resume_callback()
2401 vdo_resume_packer(vdo->packer, completion); in resume_callback()
2406 vdo_resume_flusher(vdo->flusher, completion); in resume_callback()
2410 resume_data_vio_pool(vdo->data_vio_pool, completion); in resume_callback()
2417 vdo_set_completion_result(completion, UDS_BAD_STATE); in resume_callback()
2420 finish_operation_callback(completion); in resume_callback()
2425 * @completion: The admin completion.
2429 static void grow_logical_callback(struct vdo_completion *completion) in grow_logical_callback() argument
2431 struct vdo *vdo = completion->vdo; in grow_logical_callback()
2441 vdo_set_completion_result(completion, VDO_READ_ONLY); in grow_logical_callback()
2448 vdo_continue_completion(completion, result); in grow_logical_callback()
2453 vdo_save_components(vdo, completion); in grow_logical_callback()
2457 vdo_grow_block_map(vdo->block_map, completion); in grow_logical_callback()
2464 vdo_enter_read_only_mode(vdo, completion->result); in grow_logical_callback()
2468 vdo_set_completion_result(completion, UDS_BAD_STATE); in grow_logical_callback()
2471 finish_operation_callback(completion); in grow_logical_callback()
2476 * @completion: The admin completion.
2478 static void handle_logical_growth_error(struct vdo_completion *completion) in handle_logical_growth_error() argument
2480 struct vdo *vdo = completion->vdo; in handle_logical_growth_error()
2492 grow_logical_callback(completion); in handle_logical_growth_error()
2535 struct vdo_completion *completion = context; in copy_callback() local
2538 vdo_continue_completion(completion, result); in copy_callback()
2558 * @parent: The completion to notify when the copy is complete.
2575 * @completion: The admin completion.
2579 static void grow_physical_callback(struct vdo_completion *completion) in grow_physical_callback() argument
2581 struct vdo *vdo = completion->vdo; in grow_physical_callback()
2591 vdo_set_completion_result(completion, VDO_READ_ONLY); in grow_physical_callback()
2598 vdo_continue_completion(completion, result); in grow_physical_callback()
2603 copy_partition(vdo, VDO_RECOVERY_JOURNAL_PARTITION, completion); in grow_physical_callback()
2607 copy_partition(vdo, VDO_SLAB_SUMMARY_PARTITION, completion); in grow_physical_callback()
2616 vdo_save_components(vdo, completion); in grow_physical_callback()
2620 vdo_use_new_slabs(vdo->depot, completion); in grow_physical_callback()
2633 vdo_enter_read_only_mode(vdo, completion->result); in grow_physical_callback()
2637 vdo_set_completion_result(completion, UDS_BAD_STATE); in grow_physical_callback()
2641 finish_operation_callback(completion); in grow_physical_callback()
2646 * @completion: The sub-task completion.
2648 static void handle_physical_growth_error(struct vdo_completion *completion) in handle_physical_growth_error() argument
2650 completion->vdo->admin.phase = GROW_PHYSICAL_PHASE_ERROR; in handle_physical_growth_error()
2651 grow_physical_callback(completion); in handle_physical_growth_error()