xa_update_node_t(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ‘‘ 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