start_writing(9)
π start_writing β NAME
okay so this is start_writing(9), and yes bestie it does exactly what it says on the tin: Begin the non-duplicate write path. that's the whole vibe. short, sweet, iconic. β¨
π SYNOPSIS
void start_writing (struct hash_lock *lock , struct data_vio *agent );
that's it. that's the function. two pointers and a dream. π
π«Ά ARGUMENTS
lockβ the hash lock. and listen, it's currently gotta beQUERYINGβ like, that's the state it needs to be in when you call this, no cap. don't come at it in any other state. πagentβ thedata_viothat's currently acting as the agent for the lock. it's the main character of this lock rn, literally. π
π DESCRIPTION
so here's the tea β: this kicks off the non-duplicate write path for a hash lock that had no advice β yep, no advice, it's out here making its own decisions.
if it needs to, it picks a data_vio that has an allocation and makes it the shiny new agent. if necessary, okay? only if necessary. π¦
then β and this is the slay part β it resumes the agent on the data_vio write path. periodt. that's the whole function. she's efficient. π
β SEE ALSO
okay this list is long long, but every single one of these is required reading, iykyk. also the kernel file lives at ./drivers/md/dm-vdo/dedupe.c β that's the home base, the mothership, the whole vibe. π β¨
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)finish_writing(9)select_writing_agent(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)
fr fr, go read these. not me listing all 57 of them and you skipping to the bottom. π₯
and that's the page!! mwah π this one's from the Kernel API Manual, lives in ./drivers/md/dm-vdo, and it's dated October 2026. see u in the group chat bestie π«Άππ
π¦ 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