ip_vs_rht_walk_bucket_rcu(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… ip_vs_rht_walk_bucket_rcu(9) β€” bestie's guide to the Kernel API Manual

okay so gather round, this is the page for ip_vs_rht_walk_bucket_rcu(9), straight out of the Kernel API Manual, and honestly? it's giving "tiny function, big responsibilities" ✨


🌸 NAME 🌸

ip_vs_rht_walk_bucket_rcu β€” walk a bucket while holding the RCU read lock 🫢


✨ SYNOPSIS ✨

ip_vs_rht_walk_bucket_rcu (t , bucket , head );

yes bestie, that's the whole call, spaces and all, no cap πŸ’…


πŸŽ€ ARGUMENTS πŸŽ€

  • t β€” the current table, and it's literally a struct ip_vs_rht *var πŸ‘‘
  • bucket β€” the index of the current bucket or the hash key, whichever vibe you're on πŸ”₯
  • head β€” the bucket address, and it's used as the cursor β€” it's a struct hlist_bl_head *var in case you were wondering πŸ¦‹

πŸ’– DESCRIPTION πŸ’–

okay so here's the tea: you can totally use this while other people are out here adding, deleting, and moving entries around. it's built for that chaos, slay πŸ’€

but β€” and this is the important part β€” it's not suitable if duplicates are not desired. like, if you need everything to be unique and pristine, this is not the function for you, sorry not sorry πŸ™ˆ

now, here's the possible cases for a reader that uses cond_resched_rcu in the loop, and yes there are exactly two, we don't do extras here:

  • new table can not be installed β€” no need to repeat, you're done, go touch grass 🌈
  • new table can be installed β€” so check and repeat if a new table is installed, and this one's needed for !PREEMPT_RCU ⭐
lowkey important, so like... read it twice bestie 🧚

πŸ¦‹ SEE ALSO πŸ¦‹

check out the Kernel file ./include/net/ip_vs.h β€” that's the spot πŸ“

and then the whole friend group of related functions, in this exact order, periodt:


and that's the whole page, mwah πŸ’‹

cute little sign-off: this one lives in ./include/net, it's dated October 2026, and the page is ip_vs_rht_walk_bucket_rcu(9) β€” ily, go walk some buckets responsibly πŸ’œ

πŸ“¦ where this page comes from