xa_reserve_bh(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

okay so bestie, this is xa_reserve_bh(9) from the Kernel API Manual, and its whole main-character job is literally to reserve this index in the XArray πŸ’…. that’s the vibe, that’s the name, periodt.

πŸŽ€ SYNOPSIS πŸŽ€

here’s the exact signature β€” no edits, no β€œfixing” the spacing, we respect the code:

int xa_reserve_bh (struct xarray *xa , unsigned long index , gfp_t gfp
       );

πŸ’– ARGUMENTS πŸ’–

three cuties walk into the function:

  • xa β€” the XArray itself πŸ¦‹.
  • index β€” the index into the array ✨.
  • gfp β€” memory allocation flags 🌸.

πŸ¦‹ DESCRIPTION πŸ¦‹

it’s giving a softirq-disabling version of xa_reserve 😌. that’s the description, fr fr β€” same reserve energy, but with softirqs disabled.

🌈 CONTEXT 🌈

Any context. It takes and releases the xa_lock while disabling softirqs β€” iconic lock behavior, no cap πŸ‘‘.

πŸ’€ RETURN πŸ’€

0 if the reservation succeeded, or -ENOMEM if it failed 😭. that’s it, that’s the return vibe.

πŸ‘‘ SEE ALSO πŸ‘‘

the kernel file is ./include/linux/xarray.h, and here’s the entire extended universe of references β€” every single one, exactly as written, because we keep all the facts:

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_irq(9), xa_release(9), xa_is_sibling(9), xa_is_retry(9),
xa_is_advanced(9), xa_update_node_t(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)

kisses and bytecode, bestie 🫢 β€” source/version is ./include/linux, dated October 2026, and this cutie signs off as xa_reserve_bh(9) πŸ’–.

πŸ“¦ where this page comes from