read_slab_journal_tail(9)
okay so this is read_slab_journal_tail(9) from the Kernel API Manual, and itβs literally the success-callback bestie for slab journal loading. Buckle up, weβre getting into it π
β¨
πΈ NAME πΈ
read_slab_journal_tail β read the slab journal tail block by using a vio acquired from the vio pool. Thatβs the whole mission, and itβs giving βone job, done slayβ energy π―π
β¨ SYNOPSIS β¨
okay bestie, hereβs the signature β copy it exactly, no cap:
void read_slab_journal_tail (struct vdo_waiter *waiter , void *context
);
π ARGUMENTS π
waiterβ the vio pool waiter which has just been notified. Itβs the one popping up like βnotification received, bestieβ ππ«Άcontextβ the vio pool entry given to the waiter. Like the little sidecar the waiter carries into the callback π
π¦ DESCRIPTION π¦
This is the success callback from acquire_vio_from_pool when loading a slab journal. So when the pool hands over a vio and the load is on the success path, this is the function that catches the win. Itβs giving βcallback with main character energy,β periodt ππ
π SEE ALSO π
Kernel file ./drivers/md/dm-vdo/slab-depot.c is part of the reference crew, plus all these (9) pages β yes, the whole group chat π¬π:
- Kernel file
./drivers/md/dm-vdo/slab-depot.c, plusget_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),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)allocate_slabs(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)
Thatβs the page, bestie! π Source/version: ./drivers/md/dm-vdo Β· Date: October 2026 Β· Manual page: read_slab_journal_tail(9). Bye, slay π«Ά
π¦ 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