block_allocator
struct block_allocator *allocator)
struct block_allocator *allocator;
struct block_allocator *allocator = vdo_as_block_allocator(completion);
void vdo_replay_into_slab_journals(struct block_allocator *allocator, void *context)
void vdo_replay_into_slab_journals(struct block_allocator *allocator, void *context);
completion->callback_thread_id = ((struct block_allocator *) pooled->context)->thread_id;
struct block_allocator *allocator = slab->allocator;
static void check_summary_drain_complete(struct block_allocator *allocator)
static void notify_summary_waiters(struct block_allocator *allocator,
struct block_allocator *allocator = slab->allocator;
struct block_allocator *allocator =
container_of(scrubber, struct block_allocator, scrubber);
static void scrub_slabs(struct block_allocator *allocator, struct vdo_completion *parent)
static void register_slab_with_allocator(struct block_allocator *allocator,
static struct slab_iterator get_slab_iterator(const struct block_allocator *allocator)
struct block_allocator *allocator = listener;
struct block_allocator *allocator = block->allocator;
int vdo_allocate_block(struct block_allocator *allocator,
int vdo_enqueue_clean_slab_waiter(struct block_allocator *allocator,
int vdo_release_block_reference(struct block_allocator *allocator,
struct block_allocator *allocator = vdo_as_block_allocator(completion);
struct block_allocator *allocator = vdo_as_block_allocator(completion);
static void apply_to_slabs(struct block_allocator *allocator, vdo_action_fn callback)
struct block_allocator *allocator = vdo_as_block_allocator(completion);
static void erase_next_slab_journal(struct block_allocator *allocator);
struct block_allocator *allocator = context;
static void erase_next_slab_journal(struct block_allocator *allocator)
struct block_allocator *allocator =
container_of(state, struct block_allocator, state);
struct block_allocator *allocator = vdo_as_block_allocator(completion);
static int get_slab_statuses(struct block_allocator *allocator,
static int __must_check vdo_prepare_slabs_for_allocation(struct block_allocator *allocator)
void vdo_dump_block_allocator(const struct block_allocator *allocator)
struct block_allocator *allocator = slab->allocator;
struct block_allocator *allocator,
struct block_allocator *allocator =
static int initialize_slab_scrubber(struct block_allocator *allocator)
static int __must_check initialize_slab_summary_block(struct block_allocator *allocator,
struct block_allocator *allocator = &depot->allocators[zone];
*allocator = (struct block_allocator) {
struct block_allocator, __func__, &depot);
static void uninitialize_allocator_summary(struct block_allocator *allocator)
struct block_allocator *allocator = &depot->allocators[zone];
struct block_allocator *allocator = &depot->allocators[zone_number];
struct block_allocator *allocator = &depot->allocators[zone_number];
static void stop_scrubbing(struct block_allocator *allocator)
check_summary_drain_complete(container_of(state, struct block_allocator,
struct block_allocator *allocator = vdo_as_block_allocator(completion);
struct block_allocator *allocator =
container_of(state, struct block_allocator, state);
static void resume_scrubbing(struct block_allocator *allocator)
struct block_allocator *allocator = vdo_as_block_allocator(completion);
struct block_allocator *allocator =
container_of(state, struct block_allocator, state);
const struct block_allocator *allocator = &depot->allocators[zone];
struct block_allocator *allocator;
struct block_allocator *allocator;
struct block_allocator allocators[];
static inline struct block_allocator *vdo_as_block_allocator(struct vdo_completion *completion)
return container_of(completion, struct block_allocator, completion);
int __must_check vdo_allocate_block(struct block_allocator *allocator,
int vdo_enqueue_clean_slab_waiter(struct block_allocator *allocator,
int __must_check vdo_release_block_reference(struct block_allocator *allocator,
void vdo_dump_block_allocator(const struct block_allocator *allocator);
struct block_allocator;