acquire_lock(9)
π acquire_lock(9) β like, the Kernel API Manual one, bestie
okay so picture this: it's giving kernel internals, it's giving dedupe energy, and the manual page literally calls itself acquire_lock(9). we're in the Kernel API Manual, babes. buckle up π
β¨ NAME β¨
acquire_lock β Get the lock for a record name. that's it. that's the whole vibe. π
πΈ SYNOPSIS πΈ
int acquire_lock (struct hash_zone *zone , const struct uds_record_name
*hash , struct hash_lock *replace_lock , struct hash_lock **lock_ptr );
like yes she's a long signature, no we're not scared of her π
π¦ ARGUMENTS π¦
zoneβ The zone responsible for the hash. she's the main character here, the one holding the vibes πhashβ The hash to lock. literally the thing we're locking, periodt.replace_lockβ If non-NULL, the lock already registered for the hash which should be replaced by the new lock. so like, an out-with-the-old situation πlock_ptrβ A pointer to receive the hash lock. this is where the lock lands, hand it a spot π«Ά
π DESCRIPTION π
okay so what she does: Gets the lock for the hash (record name) of the data in a data_vio, or β if one does not exist (or if we are explicitly rolling over) β initialize a new lock for the hash and register it in the zone. either way you walk out with a lock, no cap. β¨
β οΈ and this part is NOT a vibe to skip: This must only be called in the correct thread for the zone. wrong thread? no. don't. i'm serious π
β RETURN β
VDO_SUCCESS or an error code. that's the whole tea π
π SEE ALSO π
the whole group chat, fr fr β every single one of them:
Kernel file ./drivers/md/dm-vdo/dedupe.cIntroduction(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)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)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)
and that's the page!! π this lil icon came to you from ./drivers/md/dm-vdo, dated October 2026, under the handle acquire_lock(9). mwah, go lock something ππ¦
π¦ 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