ip_vs_rht_walk_bucket_rcu(9)
π 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 astruct 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 astruct hlist_bl_head *varin 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:
ip_vs_rht_for_each_table(9)ip_vs_rht_for_each_table_rcu(9)ip_vs_rht_for_each_bucket(9)ip_vs_rht_for_bucket_retry(9)DECLARE_IP_VS_RHT_WALK_BUCKETS_RCU(9)ip_vs_rht_walk_buckets_rcu(9)DECLARE_IP_VS_RHT_WALK_BUCKET_RCU(9)DECLARE_IP_VS_RHT_WALK_BUCKETS_SAFE_RCU(9)ip_vs_rht_walk_buckets_safe_rcu(9)DECLARE_IP_VS_RHT_WALK_BUCKETS(9)ip_vs_rht_walk_buckets(9)
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
- 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