select_writing_agent(9)
π select_writing_agent(9) β a Kernel API Manual moment π
okay so first things first, this is page select_writing_agent(9) from the Kernel API Manual, and bestie, we are about to learn how the kernel picks which waiter gets to do the writing. it's giving backstage-pass energy fr fr π
β¨ NAME β¨
select_writing_agent β search through the lock waiters for a data_vio that has an allocation. that's it, that's the whole vibe check π₯
πΈ SYNOPSIS πΈ
struct data_vio * select_writing_agent (struct hash_lock *lock );
literally one function, one argument, and it hands you back a struct data_vio *. slay π
π¦ ARGUMENTS π¦
lockβ the hash lock you're modifying. that's the one. the main character of this whole operation π
β DESCRIPTION β
so here's the tea β β if an allocation is found, we swap agents, put the old agent at the head of the wait queue, and then return the new agent. like a little switcheroo, iconic behavior honestly β¨
otherwise? if there's no allocation to be found? we just return the current agent. no drama, no swap, no queue shuffling. it's giving "we move" π
π§ SEE ALSO π§
okay this list is LONG, grab a snack π β here's every single one, no cap, not skipping a single one:
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), finish_writing(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)
like I said. a LOT. but we got through it together π«Ά
aaaand that's the page!! π this little gem lives in ./drivers/md/dm-vdo, dated October 2026, and it's page select_writing_agent(9) of the Kernel API Manual β go forth and select your writing agent, bestie, you're gonna ate π
β¨π
π¦ 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