xa_update_node_t(9)
π xa_update_node_t β the callback, bestie β¨
okay so this page is from the Kernel API Manual, and it's literally about one little callback that the XArray hits up every time it does bookkeeping. it's giving "small function, big responsibilities" energy π
πΈ NAME
xa_update_node_t β a callback function from the XArray π
π¦ SYNOPSIS
void xa_update_node_t (struct xa_node *node );
π ARGUMENTS
nodeβ the node which is being processed π this is the one getting the glow-up
β¨ DESCRIPTION
so here's the tea β β this function gets called every single time the XArray updates the count of present and value entries in a node. every time. no cap. π₯
and what's it for? it lets advanced users maintain the private_list in the node. that's it, that's the whole vibe. it's a little hook for the people who know what they're doing β iykyk π
π CONTEXT
okay bestie, this part is important, pay attention π
the xa_lock is held and interrupts may be disabled when you get here. so your implementation:
- should not drop the
xa_lockπ« - should not re-enable interrupts π«
fr fr do not touch the lock. do not re-enable interrupts. the vibe check fails immediately if you do π
π SEE ALSO
the kernel file ./include/linux/xarray.h, plus like... the entire XArray extended universe πβ¨
xa_mk_value(9), xa_to_value(9), xa_is_value(9), xa_tag_pointer(9), xa_untag_pointer(9), xa_pointer_tag(9), xa_is_zero(9), xa_is_err(9), xa_err(9), struct xa_limit(9), struct xarray(9), DEFINE_XARRAY_FLAGS(9), DEFINE_XARRAY(9), DEFINE_XARRAY_ALLOC(9), DEFINE_XARRAY_ALLOC1(9), xa_init_flags(9), xa_init(9), xa_empty(9), xa_marked(9), xa_for_each_range(9), xa_for_each_start(9), xa_for_each(9), xa_for_each_marked(9), xa_store_bh(9), xa_store_irq(9), xa_erase_bh(9), xa_erase_irq(9), xa_cmpxchg(9), xa_cmpxchg_bh(9), xa_cmpxchg_irq(9), xa_insert(9), xa_insert_bh(9), xa_insert_irq(9), xa_alloc(9), xa_alloc_bh(9), xa_alloc_irq(9), xa_alloc_cyclic(9), xa_alloc_cyclic_bh(9), xa_alloc_cyclic_irq(9), xa_reserve(9), xa_reserve_bh(9), xa_reserve_irq(9), xa_release(9), xa_is_sibling(9), xa_is_retry(9), xa_is_advanced(9), XA_STATE(9), XA_STATE_ORDER(9), xas_error(9), xas_set_err(9), xas_invalid(9), xas_valid(9), xas_is_node(9), xas_reset(9), xas_retry(9), xas_reload(9), xas_set(9), xas_advance(9), xas_set_order(9), xas_set_update(9), xas_next_entry(9), xas_next_marked(9), xas_for_each(9), xas_for_each_marked(9), xas_for_each_conflict(9), xas_prev(9), xas_next(9)
like, genuinely obsessed with how many of these there are π go read them, they're all iconic in their own way π§
mwah π that's the page! this one lives in ./include/linux and it's dated October 2026 β so yeah, mark your calendars bestie, the XArray said "see you in the future" πβ¨π«Ά
π¦ 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