lock_duplicate_pbn(9)
π
lock_duplicate_pbn(9) β the lock_duplicate_pbn(9) kernel API manual, but make it make sense
okay so bestie, welcome to the lock_duplicate_pbn(9) glow-up β¨ this is the section 9 kernel API page, and we're gonna get you comfy with it, no cap.
πΈ NAME πΈ
lock_duplicate_pbn β grab a read lock on the PBN of the block that's holding your candidate duplicate data (could be compressed, could be not, either way we're locking it π).
π SYNOPSIS π
void lock_duplicate_pbn (struct vdo_completion *completion );
π¦ ARGUMENTS π¦
completionβ the completion of thedata_viothat's out here trying to acquire the physical block lock on behalf of its hash lock. like, it's doing the lock-acquiring errand for the hash lock, that's the whole vibe π«Ά
β¨ DESCRIPTION β¨
so here's the tea β β if the PBN is already locked for writing, the lock attempt gets abandoned, and is_duplicate is cleared before calling back. periodt, that's just how it goes.
also important: this continuation is launched from start_locking, and it calls back to finish_locking on the hash zone thread π§
ngl this is one of those tiny functions that's lowkey load-bearing β remember the abandon path, bestie, or the callback's gonna catch you off guard π
π₯ SEE ALSO π₯
- 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)start_locking(9)finish_writing(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)
that's a lot of links and honestly? iconic. go read them, iykyk π
π ok that's the whole page, bestie! this lil gem lives in ./drivers/md/dm-vdo and it's dated October 2026 β so mark your calendar, screenshot it, whatever you gotta do π slay, and happy locking!! π¦π
π¦ 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