smk_list_swap_rcu(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ smk_list_swap_rcu πŸ’… β€” from the Kernel API Manual, bestie πŸŽ€

okay so picture this: you're deep in the kernel docs and this little function pops up, and honestly? it's giving "quiet luxury" β€” small, does one thing, slays. it's smk_list_swap_rcu, straight out of the Kernel API Manual, and no cap it's lowkey iconic for what it does.


✨ NAME ✨

smk_list_swap_rcu β€” swap a public list with a private one in an RCU-safe way πŸ¦‹

ok so like, plot twist: the caller must hold the appropriate mutex to prevent concurrent modifications to the public list. that part is not optional, bestie, that's the whole vibe check. and the private list? it's assumed to be not accessible to other threads yet πŸ™ˆ β€” like it hasn't been introduced to the group chat, so nobody else can touch it. periodt.


🌸 SYNOPSIS 🌸

void smk_list_swap_rcu (struct list_head *public , struct list_head *private );

like, literally that's it. two lists walk in, vibes get swapped, RCU stays happy. πŸ’–


πŸŽ€ ARGUMENTS πŸŽ€

  • public β€” the public list πŸ’… the main character, the one everyone can see.
  • private β€” the private list 🫢 the one that's still on "do not disturb" mode, not accessible to other threads yet.

πŸ‘‘ SEE ALSO πŸ‘‘

the kernel file is ./security/smack/smackfs.c β€” that's the source of truth, bookmark it fr fr. 🌈 and here's the whole squad, no one left behind:

smk_netlabel_audit_set(9), smk_set_access(9), smk_perm_from_str(9), smk_fill_rule(9), smk_parse_rule(9), smk_parse_long_rule(9), smk_write_rules_list(9), smk_open_load(9), smk_write_load(9), smk_cipso_doi(9), smk_unlbl_ambient(9), smk_open_cipso(9), smk_set_cipso(9), smk_write_cipso(9), smk_open_cipso2(9), smk_write_cipso2(9), smk_open_net4addr(9), smk_net4addr_insert(9), smk_write_net4addr(9), smk_open_net6addr(9), smk_net6addr_insert(9), smk_write_net6addr(9), smk_read_doi(9), smk_write_doi(9), smk_read_cipso_auto_level(9), smk_write_cipso_auto_level(9), smk_read_ambient(9), smk_write_ambient(9), smk_parse_label_list(9), smk_destroy_label_list(9), smk_write_onlycap(9), smk_read_unconfined(9), smk_write_unconfined(9), smk_read_logging(9), smk_write_logging(9), smk_open_load_self(9), smk_write_load_self(9), smk_user_access(9), smk_write_access(9), smk_open_load2(9), smk_write_load2(9), smk_open_load_self2(9), smk_write_load_self2(9), smk_write_access2(9), smk_write_revoke_subj(9), smk_init_sysfs(9), smk_write_change_rule(9), smk_read_syslog(9), smk_write_syslog(9), smk_open_relabel_self(9), smk_write_relabel_self(9), smk_read_ptrace(9), smk_write_ptrace(9), smk_fill_super(9), smk_get_tree(9), smk_init_fs_context(9), init_smk_fs(9)

heads up bestie: mutex first, swapping second. skipping the mutex is not cute, it's a whole mess, and the private list is only off-limits-to-others yet β€” don't go reading into that. 😭

aaaand that's the page!! 🧚 source is ./security/smack, dated October 2026, and the whole thing is filed under smk_list_swap_rcu(9) β€” go off, you understood it perfectly, i'm obsessed. β­πŸ’œπŸ“

πŸ“¦ where this page comes from