binder_find_...tion_ilocked(9)
π binder_find_...tion_ilocked(9) π
okay so first things first, bestie β this page lives in the Kernel API Manual, and the function name is literally binder_find_...tion_ilocked(9), ellipsis and all. No, we're not fixing it. We respect the truncation. π
β¨ NAME β¨
binder_find_outdated_transaction_ilocked β find the outdated transaction π
πΈ SYNOPSIS πΈ
struct binder_transaction * binder_find_outdated_transaction_ilocked
(struct binder_transaction *t , struct list_head *target_list );
that's the whole signature, no cap. returns a pointer to struct binder_transaction, and the _ilocked suffix is your little hint that locks are involved (more on that in DESCRIPTION, don't skip ahead π).
π¦ ARGUMENTS π¦
tβ the new async transaction. this is the fresh one you're bringing to the party.target_listβ the list you're gonna dig through to find the outdated transaction. it's astruct list_head *, bestie, act like you know.
β RETURN β
you get back the outdated transaction if found, and NULL if no outdated transacton can be found β and yes, the original spells it "transacton" there, we're preserving the lore π. so lowkey: check for NULL, always, that's your vibe check.
π₯ DESCRIPTION π₯
Requires the proc->inner_lock to be held.
that's it. that's the whole requirement. no cap, it's giving "short but if you ignore it you WILL have a bad time". hold the proc->inner_lock before you call this, fr fr β the _ilocked in the name is not decorative, it's a promise you have to keep π«Ά.
π SEE ALSO π
Kernel file ./drivers/android/binder.c β that's the main character here π β plus this whole extended friend group:
binder_proc_lock(9)binder_proc_unlock(9)binder_inner_proc_lock(9)binder_inner_proc_unlock(9)binder_node_lock(9)binder_node_unlock(9)binder_node_inner_lock(9)binder_node_inner_unlock(9)binder_worklist_empty(9)binder_enqueue_work_ilocked(9)binder_enqueue_deferred_thread_work_ilocked(9)binder_enqueue_thread_work_ilocked(9)binder_enqueue_thread_work(9)binder_dequeue_work(9)binder_select_thread_ilocked(9)binder_wakeup_thread_ilocked(9)binder_inc_node_tmpref(9)binder_dec_node_tmpref(9)binder_get_ref_for_node_olocked(9)binder_inc_ref_olocked(9)binder_dec_ref_olocked(9)binder_get_node_from_ref(9)binder_free_ref(9)binder_update_ref_for_handle(9)binder_dec_ref_for_handle(9)binder_inc_ref_for_node(9)binder_thread_dec_tmpref(9)binder_proc_dec_tmpref(9)binder_get_txn_from(9)binder_get_txn_from_and_acq_inner(9)binder_free_txn_fixups(9)binder_cleanup_transaction(9)binder_get_object(9)binder_validate_ptr(9)binder_validate_fixup(9)struct binder_task_work_cb(9)binder_do_fd_close(9)binder_deferred_fd_close(9)struct binder_ptr_fixup(9)struct binder_sg_copy(9)binder_do_deferred_txn_copies(9)binder_cleanup_deferred_txn_lists(9)binder_defer_copy(9)binder_add_fixup(9)binder_can_update_transaction(9)binder_proc_transaction(9)binder_get_node_refs_for_txn(9)binder_netlink_report(9)binder_free_buf(9)binder_apply_fd_fixups(9)print_next_binder_node_ilocked(9)
like, that's the whole group chat, go read them too π
and that's the page!! π sourced from ./drivers/android, dated October 2026, and it's literally titled binder_find_...tion_ilocked(9) β iconic, we stan a truncated header, periodt π¦β¨
π¦ 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