start_deduping(9)
β¨ start_deduping(9) β¨
okay so bestie, welcome to the Kernel API Manual π
this one's called start_deduping and it's genuinely iconic β it's the moment where all your data_vios finally start deduping in parallel against a real, honest-to-goodness copy of their data on disk. no cap. π¦
π NAME π
start_deduping β enter the hash lock state where data_vios deduplicate in parallel against a true copy of their data on disk. that's the whole vibe, and honestly? obsessed. β¨
πΈ SYNOPSIS πΈ
void start_deduping (struct hash_lock *lock , struct data_vio *agent ,
bool agent_is_done );
copy it exactly like that, bestie, don't touch the spacing, it's giving fragile. π
π ARGUMENTS π
lockβ the hash lock. yes. the hash lock. this is the lock we're talking about. πagentβ thedata_viothat's out here acting as the agent for the lock. main character energy fr. πagent_is_doneβ abool, and it'sTrueonly if the agent has already written or deduplicated against its data. like, only then. no exceptions, we don't do "close enough". π
π¦ DESCRIPTION π¦
so here's the tea β β if the agent itself needs to deduplicate, then an increment for it must already have been claimed from the duplicate lock. that's not optional, that's the whole point. why? because it ensures the hash lock will still have a data_vio holding it. the way that works is lowkey kind of beautiful. π«Ά
β οΈ key word: already. this isn't "should probably", it's "must already have been claimed". get that increment first or the hash lock is out here with nobody holding it, and nobody wants that. π
π SEE ALSO π
a whole squad, and honestly they ate. every single one is (9), and they all live in the kernel file ./drivers/md/dm-vdo/dedupe.c alongside our girl Introduction(9). π
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),increment_stat(9),finish_verifying(9)start_verifying(9),finish_locking(9),lock_duplicate_pbn(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)
iykyk π go read them all, i'll wait.
okay that's the page!! this whole thing lives in ./drivers/md/dm-vdo and the version/date stamp on it is October 2026 β so yeah, she's from the future, and she's still serving. 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