vdo_waiter
static void write_page_callback(struct vdo_waiter *waiter, void *context)
static void acquire_vio(struct vdo_waiter *waiter, struct block_map_zone *zone)
static void write_page_if_not_dirtied(struct vdo_waiter *waiter, void *context)
static inline struct vdo_page_completion *page_completion_from_waiter(struct vdo_waiter *waiter)
static void abort_lookup_for_waiter(struct vdo_waiter *waiter, void *context)
static void continue_load_for_waiter(struct vdo_waiter *waiter, void *context)
static void load_page(struct vdo_waiter *waiter, void *context)
static void continue_allocation_for_waiter(struct vdo_waiter *waiter, void *context)
static void launch_cursor(struct vdo_waiter *waiter, void *context)
static void complete_waiter_with_error(struct vdo_waiter *waiter, void *result_ptr)
static void complete_waiter_with_page(struct vdo_waiter *waiter, void *page_info)
struct vdo_waiter waiter;
static bool completion_needs_page(struct vdo_waiter *waiter, void *context)
struct vdo_waiter *oldest_waiter;
struct vdo_waiter waiter;
struct vdo_waiter waiter;
struct vdo_waiter waiter;
struct vdo_waiter waiter;
static inline struct data_vio *vdo_waiter_as_data_vio(struct vdo_waiter *waiter)
static void abort_waiter(struct vdo_waiter *waiter, void __always_unused *context)
static void enter_forked_lock(struct vdo_waiter *waiter, void *context)
struct vdo_waiter *waiter, *first = vdo_waitq_get_first_waiter(waitq);
static struct vdo_flush *vdo_waiter_as_flush(struct vdo_waiter *waiter)
struct vdo_waiter waiter;
static void retry_allocation(struct vdo_waiter *waiter, void __always_unused *context)
static void assign_entry(struct vdo_waiter *waiter, void *context)
static void continue_committed_waiter(struct vdo_waiter *waiter, void *context)
static void write_block(struct vdo_waiter *waiter, void __always_unused *context)
static void continue_waiter(struct vdo_waiter *waiter, void *context)
struct vdo_waiter write_waiter;
static void finish_summary_update(struct vdo_waiter *waiter, void *context)
static void write_reference_block(struct vdo_waiter *waiter, void *context);
static void launch_reference_block_write(struct vdo_waiter *waiter, void *context)
static void write_reference_block(struct vdo_waiter *waiter, void *context)
static void release_journal_locks(struct vdo_waiter *waiter, void *context);
static void add_entry_from_waiter(struct vdo_waiter *waiter, void *context)
struct vdo_waiter *waiter = vdo_waitq_get_first_waiter(&journal->entry_waiters);
static void load_reference_block_group(struct vdo_waiter *waiter, void *context)
struct vdo_waiter *waiter = &slab->reference_blocks[i].waiter;
static void read_slab_journal_tail(struct vdo_waiter *waiter, void *context)
static void abort_waiter(struct vdo_waiter *waiter, void __always_unused *context)
struct vdo_waiter *waiter)
static void update_slab_summary_entry(struct vdo_slab *slab, struct vdo_waiter *waiter,
static void flush_for_reaping(struct vdo_waiter *waiter, void *context)
static void release_journal_locks(struct vdo_waiter *waiter, void *context)
static void write_slab_journal_block(struct vdo_waiter *waiter, void *context)
struct vdo_waiter waiter;
struct vdo_waiter summary_waiter;
struct vdo_waiter *waiter);
struct vdo_waiter resource_waiter;
struct vdo_waiter slab_summary_waiter;
struct vdo_waiter flush_waiter;
void acquire_vio_from_pool(struct vio_pool *pool, struct vdo_waiter *waiter)
void acquire_vio_from_pool(struct vio_pool *pool, struct vdo_waiter *waiter);
struct vdo_waiter *vdo_waitq_get_first_waiter(const struct vdo_wait_queue *waitq)
struct vdo_waiter *last_waiter = waitq->last_waiter;
struct vdo_waiter *waiter = vdo_waitq_dequeue_waiter(&iteration_waitq);
struct vdo_waiter *vdo_waitq_dequeue_waiter(struct vdo_wait_queue *waitq)
struct vdo_waiter *first_waiter = vdo_waitq_get_first_waiter(waitq);
struct vdo_waiter *last_waiter = waitq->last_waiter;
struct vdo_waiter *waiter = vdo_waitq_dequeue_waiter(waitq);
void vdo_waitq_enqueue_waiter(struct vdo_wait_queue *waitq, struct vdo_waiter *waiter)
struct vdo_waiter *from_head = from_waitq->last_waiter->next_waiter;
struct vdo_waiter *to_head = to_waitq->last_waiter->next_waiter;
struct vdo_waiter *waiter);
struct vdo_waiter *vdo_waitq_dequeue_waiter(struct vdo_wait_queue *waitq);
struct vdo_waiter *vdo_waitq_get_first_waiter(const struct vdo_wait_queue *waitq);
struct vdo_waiter;
struct vdo_waiter *last_waiter;
typedef void (*vdo_waiter_callback_fn)(struct vdo_waiter *waiter, void *context);
typedef bool (*vdo_waiter_match_fn)(struct vdo_waiter *waiter, void *context);
struct vdo_waiter *next_waiter;
static inline bool vdo_waiter_is_waiting(struct vdo_waiter *waiter)