allocate_slabs(9)
π
allocate_slabs(9) β Kernel API Manual π
okay so bestie, welcome to the allocate_slabs(9) page β yes, thatβs the title and the manual name folded in right at the top because weβre cute like that. This is the Kernel API Manual, and itβs giving βsmall function, big slab-depot energy.β Letβs get into it. π«Ά
πΈ NAME πΈ
allocate_slabs β allocate a new slab pointer array. Thatβs the whole assignment, no cap. β¨
π SYNOPSIS π
int allocate_slabs (struct slab_depot *depot , slab_count_t slab_count
);
π ARGUMENTS π
depotβ the depot. literally the depot in question. π«Άslab_countβ the number of slabs the depot should have in the new array. yes bestie, thatβs the count. π
β¨ DESCRIPTION β¨
okay so the way this works: any existing slab pointers get copied into the new array, and slabs are allocated as needed. that part is slay. but listen β the newly allocated slabs are not distributed for use by the block allocators. not even a little. theyβre allocated but not handed out, iykyk. π
π₯ RETURN π₯
VDO_SUCCESS or an error code. thatβs it. iconic return values only. π
π SEE ALSO π
Kernel file ./drivers/md/dm-vdo/slab-depot.c, plus the whole extended friend group: get_lock(9), must_make_entries_to_flush(9), is_reaping(9), initialize_tail_block(9), initialize_journal_state(9), block_is_full(9), is_slab_journal_blank(9), mark_slab_journal_dirty(9), compute_fullness_hint(9), check_summary_drain_complete(9), notify_summary_waiters(9), finish_updating_slab_summary_block(9), finish_update(9), handle_write_error(9), launch_write(9), update_slab_summary_entry(9), finish_reaping(9), complete_reaping(9), handle_flush_error(9), flush_for_reaping(9), reap_slab_journal(9), adjust_slab_journal_block_reference(9), release_journal_locks(9), update_tail_block_location(9), reopen_slab_journal(9), complete_write(9), write_slab_journal_block(9), commit_tail(9), encode_slab_journal_entry(9), expand_journal_point(9), add_entry(9), vdo_attempt_replay_into_slab(9), requires_reaping(9), launch_reference_block_write(9), finish_reference_block_write(9), get_reference_counters_for_block(9), pack_reference_block(9), handle_io_error(9), write_reference_block(9), reference_count_to_status(9), dirty_block(9), get_reference_block(9), slab_block_number_from_pbn(9), get_reference_counter(9), adjust_free_block_count(9), increment_for_data(9), decrement_for_data(9), increment_for_block_map(9), update_reference_count(9), add_entry_from_waiter(9), is_next_entry_a_block_map_increment(9), add_entries(9), reset_search_cursor(9), advance_search_cursor(9), vdo_adjust_reference_count_for_rebuild(9), replay_reference_count_change(9), find_zero_byte_in_word(9), find_free_block(9), search_current_reference_block(9), search_reference_blocks(9), make_provisional_reference(9), dirty_all_reference_blocks(9), match_bytes(9), count_valid_references(9), unpack_reference_block(9), finish_reference_block_load(9), load_reference_block_group(9), load_reference_blocks(9), drain_slab(9), read_slab_journal_tail(9), load_slab_journal(9), get_next_slab(9), has_slabs_to_scrub(9), uninitialize_scrubber_vio(9), finish_scrubbing(9), slab_scrubbed(9), abort_scrubbing(9), handle_scrubber_error(9), apply_block_entries(9), apply_journal_entries(9), start_scrubbing(9), scrub_next_slab(9), scrub_slabs(9), get_depot_slab_iterator(9), next_slab(9), abort_waiter(9), vdo_acquire_provisional_reference(9), open_slab(9), vdo_enqueue_clean_slab_waiter(9), vdo_modify_reference_count(9), vdo_notify_slab_journals_are_recovered(9), make_slab(9), vdo_abandon_new_slabs(9), release_recovery_journal_lock(9), prepare_for_tail_block_commit(9), schedule_tail_block_commit(9), initialize_slab_scrubber(9), initialize_slab_summary_block(9), vdo_decode_slab_depot(9), vdo_free_slab_depot(9), vdo_record_slab_depot(9), vdo_allocate_reference_counters(9), get_slab_number(9), vdo_get_slab(9), vdo_get_increment_limit(9), vdo_is_physical_data_block(9), vdo_get_slab_depot_allocated_blocks(9), vdo_get_slab_depot_data_blocks(9), finish_combining_zones(9), combine_summaries(9), finish_loading_summary(9), load_slab_summary(9), vdo_load_slab_depot(9), vdo_prepare_slab_depot_to_allocate(9), vdo_update_slab_depot_size(9), vdo_prepare_to_grow_slab_depot(9), finish_registration(9), vdo_use_new_slabs(9), stop_scrubbing(9), vdo_drain_slab_depot(9), resume_scrubbing(9), vdo_resume_slab_depot(9), vdo_commit_oldest_slab_journal_tail_blocks(9), vdo_scrub_all_unrecovered_slabs(9), get_block_allocator_statistics(9), get_ref_counts_statistics(9), get_slab_journal_statistics(9), vdo_get_slab_depot_statistics(9), vdo_dump_slab_depot(9).
signed, sealed, and slayed from ./drivers/md/dm-vdo, October 2026, on the allocate_slabs(9) page β mwah πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms