vdo_add_reco...ournal_entry(9)
π« vdo_add_reco...ournal_entry(9) π«
okay so bestie, welcome to the Kernel API Manual β yes the actual kernel API manual, dm-vdo edition, we're in the big leagues now π«Ά this page is about vdo_add_recovery_journal_entry, and no, the title isn't a typo, the real manual header just truncates it like that (vdo_add_reco...ournal_entry(9)) because even the manpage index has a character limit, iconic behavior honestly β¨
πΈ NAME πΈ
vdo_add_recovery_journal_entry β literally just: add an entry to a recovery journal. that's the whole bit. π
π¦ SYNOPSIS π¦
void vdo_add_recovery_journal_entry (struct recovery_journal *journal ,
struct data_vio *data_vio );
two args, returns void, no cap. π
π ARGUMENTS π
journalβ the journal you're making an entry in. that's it, that's the vibe. the destination. the main character of the whole operation π₯data_vioβ the data_vio you're adding an entry for. and okay listen, this part matters: the entry gets taken from thelogicalandnew_mappedfields of the data_vio π and also, the data_vio'srecovery_sequence_numberfield gets set to the sequence number of the journal block where the entry was actually made. so it comes back out with receipts, iykyk β¨
π DESCRIPTION π
this method is asynchronous, bestie β say it with me, asynchronous π so like, the data_vio will not be called back until the entry is committed to the on-disk journal. on-disk. committed. no shortcuts, no vibes-only commits, we wait for the real thing π§
lowkey important: don't assume you get a callback immediately, because you absolutely do not. the entry has to land on disk first. periodt. π
π SEE ALSO π
okay this is the part where the manpage just dumps the entire friend group at you π«Ά take a breath, we're listing everybody:
- Kernel file
./drivers/md/dm-vdo/recovery-journal.cLock Counters.(9) get_zone_count_ptr(9)get_counter(9)is_journal_zone_locked(9)vdo_release_recovery_journal_block_reference(9)pop_free_list(9)is_block_dirty(9)is_block_empty(9)is_block_full(9)assert_on_journal_thread(9)continue_waiter(9)has_block_waiters(9)suspend_lock_counter(9)check_for_drain_complete(9)notify_recovery_journal_of_read_only_mode(9)enter_journal_read_only_mode(9)vdo_get_recovery_journal_current_sequence_number(9)get_recovery_journal_head(9)compute_recovery_count_byte(9)check_slab_journal_commit_threshold(9)finish_reaping(9)complete_reaping(9)handle_flush_error(9)initialize_journal_state(9)vdo_get_recovery_journal_length(9)reap_recovery_journal_callback(9)initialize_lock_counter(9)set_journal_tail(9)initialize_recovery_block(9)vdo_decode_recovery_journal(9)vdo_free_recovery_journal(9)vdo_initialize_recovery_journal_post_repair(9)vdo_get_journal_block_map_data_blocks_used(9)vdo_get_recovery_journal_thread_id(9)vdo_open_recovery_journal(9)vdo_record_recovery_journal(9)get_block_header(9)set_active_sector(9)advance_tail(9)initialize_lock_count(9)prepare_to_assign_entry(9)schedule_block_write(9)release_journal_block_reference(9)assign_entry(9)recycle_journal_block(9)continue_committed_waiter(9)notify_commit_waiters(9)recycle_journal_blocks(9)complete_write(9)add_queued_recovery_entries(9)write_block(9)write_blocks(9)is_lock_locked(9)reap_recovery_journal(9)vdo_acquire_recovery_journal_block_reference(9)vdo_release_journal_entry_lock(9)vdo_drain_recovery_journal(9)resume_lock_counter(9)vdo_resume_recovery_journal(9)vdo_get_recovery_journal_logical_blocks_used(9)vdo_get_recovery_journal_statistics(9)dump_recovery_block(9)vdo_dump_recovery_journal_statistics(9)
like I said. everybody. ππ
and that's the page!! π huge slay to ./drivers/md/dm-vdo for shipping this, dated October 2026, version vibes immaculate, footer energy unmatched. go commit your entries responsibly bestie, and remember: asynchronous means wait for it π
β¨π¦
π¦ 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