finish_writing(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– finish_writing(9) πŸ’–

okay so this is a page from the Kernel API Manual, and we're talking about finish_writing β€” the re-entry point for the lock agent after it has finished writing or compressing its copy of the data block. it's giving β€œbestie just wrapped the write/compress era, now what?” and honestly? slay. πŸ’…βœ¨


🌸 NAME 🌸

finish_writing β€” the re-entry point for the lock agent after it has finished writing or compressing its copy of the data block. no cap, that's the whole name vibe. πŸ¦‹


πŸŽ€ SYNOPSIS πŸŽ€

okay so here's the exact signature, bestie β€” don't touch the punctuation, i'm obsessed with it:

void finish_writing (struct hash_lock *lock , struct data_vio *agent );

🫢 ARGUMENTS 🫢

  • lock β€” the hash lock, and bestie it must be in state WRITING. that's the vibe check, fr fr. πŸ’…
  • agent β€” the data_vio that wrote its data for the lock. main character energy, honestly. πŸ‘‘

πŸ”₯ DESCRIPTION πŸ”₯

so the agent will never need to dedupe against anything β€” literally never β€” which means it's done with the lock. but the lock may not be finished with it, because a UDS update might still be needed. 😭

if there are other lock holders, the agent will hand the job to one of them and exit, leaving the lock to deduplicate against the just-written block. if there are no other lock holders, the agent either exits (and later tears down the hash lock), or it remains the agent and updates UDS. periodt. πŸ’€βœ¨


🌈 SEE ALSO 🌈

the whole cross-reference friend group is literally right here β€” iconic behavior, iykyk:

Kernel file ./drivers/md/dm-vdo/dedupe.c Introduction(9),
return_hash_lock_to_pool(9), vdo_get_duplicate_lock(9),
hash_lock_key(9), get_hash_lock_state_name(9),
assert_hash_lock_agent(9), set_duplicate_lock(9),
dequeue_lock_waiter(9), set_hash_lock(9), exit_hash_lock(9),
set_duplicate_location(9), retire_lock_agent(9), wait_on_hash_lock(9),
abort_waiter(9), start_bypassing(9), finish_unlocking(9),
unlock_duplicate_pbn(9), start_unlocking(9), finish_updating(9),
start_updating(9), finish_deduping(9), acquire_lock(9),
enter_forked_lock(9), fork_hash_lock(9), launch_dedupe(9),
start_deduping(9), increment_stat(9), finish_verifying(9),
start_verifying(9), finish_locking(9), lock_duplicate_pbn(9),
start_locking(9), select_writing_agent(9), start_writing(9),
finish_querying(9), start_querying(9), report_bogus_lock_state(9),
vdo_continue_hash_lock(9), is_hash_collision(9),
vdo_acquire_hash_lock(9), vdo_release_hash_lock(9),
transfer_allocation_lock(9), vdo_share_compressed_write_lock(9),
report_dedupe_timeouts(9), finish_index_operation(9),
check_for_drain_complete(9), vdo_make_hash_zones(9),
vdo_free_hash_zones(9), suspend_index(9), resume_index(9),
vdo_resume_hash_zones(9), get_hash_zone_statistics(9),
vdo_get_dedupe_statistics(9), vdo_select_hash_zone(9),
dump_hash_lock(9), dump_hash_zone(9), vdo_dump_hash_zones(9),
acquire_context(9)

byeee bestie 🫢 source/version: ./drivers/md/dm-vdo Β· date: October 2026 Β· page: finish_writing(9) πŸ’…βœ¨πŸ“

πŸ“¦ where this page comes from