Lines Matching refs:completion

101 	struct vdo_completion *completion;  member
165 struct vdo_page_completion *completion; in page_completion_from_waiter() local
170 completion = container_of(waiter, struct vdo_page_completion, waiter); in page_completion_from_waiter()
171 vdo_assert_completion_type(&completion->completion, VDO_PAGE_COMPLETION); in page_completion_from_waiter()
172 return completion; in page_completion_from_waiter()
199 info->vio->completion.callback_thread_id = cache->zone->thread_id; in initialize_info()
489 vdo_fail_completion(&vdo_page_comp->completion, VDO_BAD_PAGE); in complete_with_page()
495 vdo_finish_completion(&vdo_page_comp->completion); in complete_with_page()
509 vdo_fail_completion(&page_completion_from_waiter(waiter)->completion, *result); in complete_waiter_with_error()
588 static int __must_check validate_completed_page(struct vdo_page_completion *completion, in validate_completed_page() argument
593 result = VDO_ASSERT(completion->ready, "VDO Page completion not ready"); in validate_completed_page()
597 result = VDO_ASSERT(completion->info != NULL, in validate_completed_page()
602 result = VDO_ASSERT(completion->info->pbn == completion->pbn, in validate_completed_page()
607 result = VDO_ASSERT(is_valid(completion->info), in validate_completed_page()
613 result = VDO_ASSERT(completion->writable, in validate_completed_page()
649 validate_completed_page_or_enter_read_only_mode(struct vdo_page_completion *completion, in validate_completed_page_or_enter_read_only_mode() argument
652 int result = validate_completed_page(completion, writable); in validate_completed_page_or_enter_read_only_mode()
657 enter_zone_read_only_mode(completion->info->cache->zone, result); in validate_completed_page_or_enter_read_only_mode()
665 static void handle_load_error(struct vdo_completion *completion) in handle_load_error() argument
667 int result = completion->result; in handle_load_error()
668 struct page_info *info = completion->parent; in handle_load_error()
672 vio_record_metadata_io_error(as_vio(completion)); in handle_load_error()
691 static void page_is_loaded(struct vdo_completion *completion) in page_is_loaded() argument
693 struct page_info *info = completion->parent; in page_is_loaded()
710 vdo_continue_completion(completion, result); in page_is_loaded()
733 static void handle_rebuild_read_error(struct vdo_completion *completion) in handle_rebuild_read_error() argument
735 struct page_info *info = completion->parent; in handle_rebuild_read_error()
744 vio_record_metadata_io_error(as_vio(completion)); in handle_rebuild_read_error()
747 vdo_reset_completion(completion); in handle_rebuild_read_error()
748 page_is_loaded(completion); in handle_rebuild_read_error()
754 struct page_info *info = vio->completion.parent; in load_cache_page_endio()
790 static void write_pages(struct vdo_completion *completion);
793 static void handle_flush_error(struct vdo_completion *completion) in handle_flush_error() argument
795 struct page_info *info = completion->parent; in handle_flush_error()
797 vio_record_metadata_io_error(as_vio(completion)); in handle_flush_error()
798 set_persistent_error(info->cache, "flush failed", completion->result); in handle_flush_error()
799 write_pages(completion); in handle_flush_error()
805 struct page_info *info = vio->completion.parent; in flush_endio()
1003 static void handle_page_write_error(struct vdo_completion *completion) in handle_page_write_error() argument
1005 int result = completion->result; in handle_page_write_error()
1006 struct page_info *info = completion->parent; in handle_page_write_error()
1009 vio_record_metadata_io_error(as_vio(completion)); in handle_page_write_error()
1028 static void page_is_written_out(struct vdo_completion *completion);
1033 struct page_info *info = vio->completion.parent; in write_cache_page_endio()
1042 static void page_is_written_out(struct vdo_completion *completion) in page_is_written_out() argument
1046 struct page_info *info = completion->parent; in page_is_written_out()
1111 struct vdo_completion *completion = &info->vio->completion; in write_pages() local
1113 vdo_reset_completion(completion); in write_pages()
1114 completion->callback = page_is_written_out; in write_pages()
1115 completion->error_handler = handle_page_write_error; in write_pages()
1116 vdo_fail_completion(completion, VDO_READ_ONLY); in write_pages()
1140 void vdo_release_page_completion(struct vdo_completion *completion) in vdo_release_page_completion() argument
1143 struct vdo_page_completion *page_completion = as_vdo_page_completion(completion); in vdo_release_page_completion()
1146 if (completion->result == VDO_SUCCESS) { in vdo_release_page_completion()
1214 struct vdo_completion *completion = &page_completion->completion; in vdo_get_page() local
1227 vdo_initialize_completion(completion, cache->vdo, VDO_PAGE_COMPLETION); in vdo_get_page()
1228 vdo_prepare_completion(completion, callback, error_handler, in vdo_get_page()
1230 completion->requeue = requeue; in vdo_get_page()
1233 vdo_fail_completion(completion, VDO_READ_ONLY); in vdo_get_page()
1286 void vdo_request_page_write(struct vdo_completion *completion) in vdo_request_page_write() argument
1289 struct vdo_page_completion *vdo_page_comp = as_vdo_page_completion(completion); in vdo_request_page_write()
1306 int vdo_get_cached_page(struct vdo_completion *completion, in vdo_get_cached_page() argument
1312 vpc = as_vdo_page_completion(completion); in vdo_get_cached_page()
1552 static void finish_page_write(struct vdo_completion *completion) in finish_page_write() argument
1555 struct vio *vio = as_vio(completion); in finish_page_write()
1557 struct tree_page *page = completion->parent; in finish_page_write()
1598 static void handle_write_error(struct vdo_completion *completion) in handle_write_error() argument
1600 int result = completion->result; in handle_write_error()
1601 struct vio *vio = as_vio(completion); in handle_write_error()
1612 static void write_initialized_page(struct vdo_completion *completion) in write_initialized_page() argument
1614 struct vio *vio = as_vio(completion); in write_initialized_page()
1617 struct tree_page *tree_page = completion->parent; in write_initialized_page()
1649 struct vdo_completion *completion = &vio->vio.completion; in write_page() local
1664 completion->parent = tree_page; in write_page()
1666 completion->callback_thread_id = zone->thread_id; in write_page()
1682 write_initialized_page(completion); in write_page()
1718 data_vio->vio.completion.error_handler = handle_data_vio_error; in finish_lookup()
1820 static void finish_block_map_page_load(struct vdo_completion *completion) in finish_block_map_page_load() argument
1826 struct vio *vio = as_vio(completion); in finish_block_map_page_load()
1828 struct data_vio *data_vio = completion->parent; in finish_block_map_page_load()
1848 static void handle_io_error(struct vdo_completion *completion) in handle_io_error() argument
1850 int result = completion->result; in handle_io_error()
1851 struct vio *vio = as_vio(completion); in handle_io_error()
1853 struct data_vio *data_vio = completion->parent; in handle_io_error()
1863 struct data_vio *data_vio = vio->completion.parent; in load_page_endio()
1876 pooled->vio.completion.parent = data_vio; in load_page()
1935 static void allocation_failure(struct vdo_completion *completion) in allocation_failure() argument
1937 struct data_vio *data_vio = as_data_vio(completion); in allocation_failure()
1939 if (vdo_requeue_completion_if_needed(completion, in allocation_failure()
1943 abort_lookup(data_vio, completion->result, "allocation"); in allocation_failure()
2064 static void finish_block_map_allocation(struct vdo_completion *completion) in finish_block_map_allocation() argument
2070 struct data_vio *data_vio = as_data_vio(completion); in finish_block_map_allocation()
2125 static void release_block_map_write_lock(struct vdo_completion *completion) in release_block_map_write_lock() argument
2127 struct data_vio *data_vio = as_data_vio(completion); in release_block_map_write_lock()
2140 static void set_block_map_page_reference_count(struct vdo_completion *completion) in set_block_map_page_reference_count() argument
2142 struct data_vio *data_vio = as_data_vio(completion); in set_block_map_page_reference_count()
2146 completion->callback = release_block_map_write_lock; in set_block_map_page_reference_count()
2147 vdo_modify_reference_count(completion, &data_vio->increment_updater); in set_block_map_page_reference_count()
2150 static void journal_block_map_allocation(struct vdo_completion *completion) in journal_block_map_allocation() argument
2152 struct data_vio *data_vio = as_data_vio(completion); in journal_block_map_allocation()
2158 vdo_add_recovery_journal_entry(completion->vdo->recovery_journal, data_vio); in journal_block_map_allocation()
2161 static void allocate_block(struct vdo_completion *completion) in allocate_block() argument
2163 struct data_vio *data_vio = as_data_vio(completion); in allocate_block()
2499 struct vdo_completion *completion = cursors->completion; in finish_cursor() local
2507 vdo_finish_completion(completion); in finish_cursor()
2516 static void continue_traversal(struct vdo_completion *completion) in continue_traversal() argument
2518 vio_record_metadata_io_error(as_vio(completion)); in continue_traversal()
2519 traverse(completion->parent); in continue_traversal()
2526 static void finish_traversal_load(struct vdo_completion *completion) in finish_traversal_load() argument
2528 struct cursor *cursor = completion->parent; in finish_traversal_load()
2544 struct cursor *cursor = vio->completion.parent; in traversal_endio()
2593 cursor->parent->completion); in traverse()
2632 pooled->vio.completion.parent = cursor; in launch_cursor()
2633 pooled->vio.completion.callback_thread_id = cursor->parent->zone->thread_id; in launch_cursor()
2675 struct vdo_completion *completion) in vdo_traverse_forest() argument
2684 vdo_fail_completion(completion, result); in vdo_traverse_forest()
2691 cursors->completion = completion; in vdo_traverse_forest()
3037 static void grow_forest(void *context, struct vdo_completion *completion) in grow_forest() argument
3040 vdo_finish_completion(completion); in grow_forest()
3062 static inline void finish_processing_page(struct vdo_completion *completion, int result) in finish_processing_page() argument
3064 struct vdo_completion *parent = completion->parent; in finish_processing_page()
3066 vdo_release_page_completion(completion); in finish_processing_page()
3070 static void handle_page_error(struct vdo_completion *completion) in handle_page_error() argument
3072 finish_processing_page(completion, completion->result); in handle_page_error()
3088 modifiable, &data_vio->vio.completion, in fetch_mapping_page()
3160 static void get_mapping_from_fetched_page(struct vdo_completion *completion) in get_mapping_from_fetched_page() argument
3163 struct vdo_page_completion *vpc = as_vdo_page_completion(completion); in get_mapping_from_fetched_page()
3166 struct data_vio *data_vio = as_data_vio(completion->parent); in get_mapping_from_fetched_page()
3169 if (completion->result != VDO_SUCCESS) { in get_mapping_from_fetched_page()
3170 finish_processing_page(completion, completion->result); in get_mapping_from_fetched_page()
3176 finish_processing_page(completion, result); in get_mapping_from_fetched_page()
3185 finish_processing_page(completion, result); in get_mapping_from_fetched_page()
3229 static void put_mapping_in_fetched_page(struct vdo_completion *completion) in put_mapping_in_fetched_page() argument
3231 struct data_vio *data_vio = as_data_vio(completion->parent); in put_mapping_in_fetched_page()
3237 if (completion->result != VDO_SUCCESS) { in put_mapping_in_fetched_page()
3238 finish_processing_page(completion, completion->result); in put_mapping_in_fetched_page()
3242 vpc = as_vdo_page_completion(completion); in put_mapping_in_fetched_page()
3245 finish_processing_page(completion, result); in put_mapping_in_fetched_page()
3257 finish_processing_page(completion, VDO_SUCCESS); in put_mapping_in_fetched_page()