hlist_bl_del_rcu(9)
π hlist_bl_del_rcu(9) π
okay so bestie, welcome to this page from the Kernel API Manual. We're talking about hlist_bl_del_rcu, and the vibe check is: it deletes an entry from a hash list, but without re-initialization. No cap. Let's get into it. π
β¨ NAME β¨
hlist_bl_del_rcu β deletes entry from hash list without re-initialization
π¦ SYNOPSIS π¦
void hlist_bl_del_rcu (struct hlist_bl_node *n );
π ARGUMENTS π
nβ the element to delete from the hash list. That's the main character here, fr fr. π«Ά
β οΈ NOTE β οΈ
Heads up bestie, this part is important. hlist_bl_unhashed on entry does not return true after this. Nope. After this call, the entry is in an undefined state. That's just how it is. It is useful for RCU based lockfree traversal, though. Slay. β¨
In particular, it means we can not poison the forward pointers that may still be used for walking the hash list. So yeah, no poisoning those forward pointers β they might still be doing their little walk. π
The caller must take whatever precautions are necessary (such as holding appropriate locks) to avoid racing with another list-mutation primitive, such as hlist_bl_add_head_rcu or hlist_bl_del_rcu, running on this same list. That's the serious bit, okay? π¨ However, it is perfectly legal to run concurrently with the _rcu list-traversal primitives, such as hlist_bl_for_each_entry. So that part is lowkey fine. π
πΈ SEE ALSO πΈ
Kernel file ./include/linux/rculist_bl.h β plus these icons: hlist_bl_add_head_rcu(9), hlist_bl_for_each_entry_rcu(9), hlist_bl_for_each_entry_continue_rcu(9). Go peep them when you're done here. π
xoxo, your Kernel API Manual girl π
β this page is sourced from ./include/linux, dated October 2026, and it's the hlist_bl_del_rcu(9) page. 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