Lines Matching refs:waiter
88 struct vdo_waiter waiter; member
163 static inline struct vdo_page_completion *page_completion_from_waiter(struct vdo_waiter *waiter) in page_completion_from_waiter() argument
167 if (waiter == NULL) in page_completion_from_waiter()
170 completion = container_of(waiter, struct vdo_page_completion, waiter); in page_completion_from_waiter()
507 static void complete_waiter_with_error(struct vdo_waiter *waiter, void *result_ptr) in complete_waiter_with_error() argument
511 vdo_fail_completion(&page_completion_from_waiter(waiter)->completion, *result); in complete_waiter_with_error()
521 static void complete_waiter_with_page(struct vdo_waiter *waiter, void *page_info) in complete_waiter_with_page() argument
523 complete_with_page(page_info, page_completion_from_waiter(waiter)); in complete_waiter_with_page()
875 static bool completion_needs_page(struct vdo_waiter *waiter, void *context) in completion_needs_page() argument
879 return (page_completion_from_waiter(waiter)->pbn == *pbn); in completion_needs_page()
969 vdo_waitq_enqueue_waiter(&cache->free_waiters, &vdo_page_comp->waiter); in discard_page_for_completion()
1156 VDO_ASSERT_LOG_ONLY((page_completion->waiter.next_waiter == NULL), in vdo_release_page_completion()
1186 vdo_waitq_enqueue_waiter(&info->waiting, &vdo_page_comp->waiter); in load_page_for_completion()
1220 VDO_ASSERT_LOG_ONLY((page_completion->waiter.next_waiter == NULL), in vdo_get_page()
1252 vdo_waitq_enqueue_waiter(&info->waiting, &page_completion->waiter); in vdo_get_page()
1477 bool decrement_old = vdo_waiter_is_waiting(&page->waiter); in set_generation()
1499 static void write_page_callback(struct vdo_waiter *waiter, void *context) in write_page_callback() argument
1501 write_page(container_of(waiter, struct tree_page, waiter), context); in write_page_callback()
1504 static void acquire_vio(struct vdo_waiter *waiter, struct block_map_zone *zone) in acquire_vio() argument
1506 waiter->callback = write_page_callback; in acquire_vio()
1507 acquire_vio_from_pool(zone->vio_pool, waiter); in acquire_vio()
1527 acquire_vio(&page->waiter, zone); in enqueue_page()
1531 vdo_waitq_enqueue_waiter(&zone->flush_waiters, &page->waiter); in enqueue_page()
1534 static void write_page_if_not_dirtied(struct vdo_waiter *waiter, void *context) in write_page_if_not_dirtied() argument
1536 struct tree_page *page = container_of(waiter, struct tree_page, waiter); in write_page_if_not_dirtied()
1540 acquire_vio(waiter, write_context->zone); in write_page_if_not_dirtied()
1592 struct tree_page, waiter); in finish_page_write()
1724 static void abort_lookup_for_waiter(struct vdo_waiter *waiter, void *context) in abort_lookup_for_waiter() argument
1726 struct data_vio *data_vio = vdo_waiter_as_data_vio(waiter); in abort_lookup_for_waiter()
1814 static void continue_load_for_waiter(struct vdo_waiter *waiter, void *context) in continue_load_for_waiter() argument
1816 struct data_vio *data_vio = vdo_waiter_as_data_vio(waiter); in continue_load_for_waiter()
1872 static void load_page(struct vdo_waiter *waiter, void *context) in load_page() argument
1875 struct data_vio *data_vio = vdo_waiter_as_data_vio(waiter); in load_page()
1917 vdo_waitq_enqueue_waiter(&lock_holder->waiters, &data_vio->waiter); in attempt_page_lock()
1933 data_vio->waiter.callback = load_page; in load_block_map_page()
1934 acquire_vio_from_pool(zone->vio_pool, &data_vio->waiter); in load_block_map_page()
1949 static void continue_allocation_for_waiter(struct vdo_waiter *waiter, void *context) in continue_allocation_for_waiter() argument
1951 struct data_vio *data_vio = vdo_waiter_as_data_vio(waiter); in continue_allocation_for_waiter()
2011 result = VDO_ASSERT(!vdo_waiter_is_waiting(&page->waiter), in write_expired_elements()
2090 if (vdo_waiter_is_waiting(&tree_page->waiter)) { in finish_block_map_allocation()
2325 bool waiting = vdo_waiter_is_waiting(&page->waiter); in vdo_write_tree_page()
2629 static void launch_cursor(struct vdo_waiter *waiter, void *context) in launch_cursor() argument
2631 struct cursor *cursor = container_of(waiter, struct cursor, waiter); in launch_cursor()
2706 cursor->waiter.callback = launch_cursor; in vdo_traverse_forest()
2707 acquire_vio_from_pool(cursors->pool, &cursor->waiter); in vdo_traverse_forest()