security_inode_free(9)
π security_inode_free(9) β the kernel API manual, bestie edition
okay so real talk: security_inode_free(9) is one of those pages that looks tiny and then hits you with the lore. it's part of the Kernel API Manual and it's lowkey the "bye felicia" moment for an inode's LSM blob. let's get into it π
β¨ NAME β¨
security_inode_free β Free an inode's LSM blob π
πΈ SYNOPSIS πΈ
void security_inode_free (struct inode *inode );
π¦ ARGUMENTS π¦
inodeβ the inode. yeah that's it. that's the whole argument. she's the main character here π
π DESCRIPTION π
so this bad girl releases any LSM resources associated with inode. basically: cleanup duty, but make it security-subsystem. π§Ήβ¨
but here's the plot twist β because of the inode's RCU protections, it is possible that those resources will not be fully released until after the current RCU grace period has elapsed. so like... eventually freed. not necessarily right this second. that's just how she rolls π
β and this next part is the IMPORTANT part, so LSMs, listen up β
although security_inode_free is literally right there in the call to security_inode_free (iconic), inode may still be referenced in a VFS path walk. and calls to security_inode_permission may be made during, or after, a call to security_inode_free. yes, after. she lingers. ghosts of inodes past π»
for this reason, the inode->i_security field is released via a call_rcu callback. and any LSMs which need to retain inode state for use in security_inode_permission should only release that state in the inode_free_security_rcu LSM hook callback. that's the one. that's the correct spot. don't free it early bestie, that's not the vibe π«Ά
π SEE ALSO π
the guest list for this party is genuinely unhinged, but every single one of them is invited π
(also, shoutout to the kernel file ./security/security.c):
lsm_file_alloc(9),
lsm_backing_file_alloc(9), lsm_blob_alloc(9), lsm_cred_alloc(9),
lsm_inode_alloc(9), lsm_task_alloc(9), lsm_ipc_alloc(9),
lsm_key_alloc(9), lsm_msg_msg_alloc(9), lsm_bdev_alloc(9),
lsm_bpf_map_alloc(9), lsm_bpf_prog_alloc(9), lsm_bpf_token_alloc(9),
lsm_superblock_alloc(9), lsm_fill_user_ctx(9),
security_binder_set_context_mgr(9), security_binder_transaction(9),
security_binder_transfer_binder(9), security_binder_transfer_file(9),
security_ptrace_access_check(9), security_ptrace_traceme(9),
security_capget(9), security_capset(9), security_capable(9),
security_quotactl(9), security_quota_on(9), security_syslog(9),
security_settime64(9), security_vm_enough_memory_mm(9),
security_bprm_creds_for_exec(9), security_bprm_creds_from_file(9),
security_bprm_check(9), security_bprm_committing_creds(9),
security_bprm_committed_creds(9), security_fs_context_submount(9),
security_fs_context_dup(9), security_fs_context_parse_param(9),
security_sb_alloc(9), security_sb_delete(9), security_sb_free(9),
security_free_mnt_opts(9), security_sb_eat_lsm_opts(9),
security_sb_mnt_opts_compat(9), security_sb_remount(9),
security_sb_kern_mount(9), security_sb_show_options(9),
security_sb_statfs(9), security_sb_mount(9), security_sb_umount(9),
security_sb_pivotroot(9), security_sb_set_mnt_opts(9),
security_sb_clone_mnt_opts(9), security_move_mount(9),
security_path_notify(9), security_inode_alloc(9),
security_dentry_init_security(9), security_dentry_create_files_as(9),
security_inode_init_security(9), security_inode_init_security_anon(9),
security_path_mknod(9), security_path_post_mknod(9),
security_path_mkdir(9), security_path_rmdir(9), security_path_unlink(9),
security_path_symlink(9), security_path_link(9),
security_path_rename(9), security_path_truncate(9),
security_path_chmod(9), security_path_chown(9), security_path_chroot(9),
security_inode_create(9), security_inode_post_create_tmpfile(9),
security_inode_link(9), security_inode_unlink(9),
security_inode_symlink(9), security_inode_mkdir(9),
security_inode_rmdir(9), security_inode_mknod(9),
security_inode_rename(9), security_inode_readlink(9),
security_inode_follow_link(9), security_inode_permission(9),
security_inode_setattr(9), security_inode_post_setattr(9),
security_inode_getattr(9), security_inode_setxattr(9),
security_inode_set_acl(9), security_inode_post_set_acl(9),
security_inode_get_acl(9), security_inode_remove_acl(9),
security_inode_post_remove_acl(9), security_inode_post_setxattr(9),
security_inode_getxattr(9), security_inode_listxattr(9),
security_inode_removexattr(9), security_inode_post_removexattr(9),
security_inode_file_setattr(9), security_inode_file_getattr(9),
security_inode_need_killpriv(9), security_inode_killpriv(9),
security_inode_getsecurity(9), security_inode_setsecurity(9),
security_inode_listsecurity(9), security_inode_getlsmprop(9),
security_inode_copy_up(9), security_inode_copy_up_xattr(9),
security_inode_setintegrity(9), security_kernfs_init_security(9),
security_file_permission(9), security_file_alloc(9),
security_file_release(9), security_file_free(9),
security_backing_file_alloc(9), security_backing_file_free(9),
security_file_ioctl(9), security_file_ioctl_compat(9),
security_mmap_file(9), security_mmap_backing_file(9),
security_mmap_addr(9), security_file_mprotect(9), security_file_lock(9),
security_file_fcntl(9), security_file_set_fowner(9),
security_file_send_sigiotask(9), security_file_receive(9),
security_file_open(9), security_file_post_open(9),
security_file_truncate(9), security_task_alloc(9),
security_task_free(9), security_cred_alloc_blank(9),
security_cred_free(9), security_prepare_creds(9),
security_transfer_creds(9), security_cred_getsecid(9),
security_cred_getlsmprop(9), security_kernel_act_as(9),
security_kernel_create_files_as(9), security_kernel_module_request(9),
security_kernel_read_file(9), security_kernel_post_read_file(9),
security_kernel_load_data(9), security_kernel_post_load_data(9),
security_task_fix_setuid(9), security_task_fix_setgid(9),
security_task_fix_setgroups(9), security_task_setpgid(9),
security_task_getpgid(9), security_task_getsid(9),
security_current_getlsmprop_subj(9), security_task_getlsmprop_obj(9),
security_task_setnice(9), security_task_setioprio(9),
security_task_getioprio(9), security_task_prlimit(9),
security_task_setrlimit(9), security_task_setscheduler(9),
security_task_getscheduler(9), security_task_movememory(9),
security_task_kill(9), security_task_prctl(9),
security_task_to_inode(9), security_create_user_ns(9),
security_ipc_permission(9), security_ipc_getlsmprop(9),
security_msg_msg_alloc(9), security_msg_msg_free(9),
security_msg_queue_alloc(9), security_msg_queue_free(9),
security_msg_queue_associate(9), security_msg_queue_msgctl(9),
security_msg_queue_msgsnd(9), security_msg_queue_msgrcv(9),
security_shm_alloc(9), security_shm_free(9), security_shm_associate(9),
security_shm_shmctl(9), security_shm_shmat(9), security_sem_alloc(9),
security_sem_free(9), security_sem_associate(9), security_sem_semctl(9),
security_sem_semop(9), security_d_instantiate(9),
security_getselfattr(9), security_setselfattr(9),
security_getprocattr(9), security_setprocattr(9),
security_ismaclabel(9), security_secid_to_secctx(9),
security_lsmprop_to_secctx(9), security_secctx_to_secid(9),
security_release_secctx(9), security_inode_invalidate_secctx(9),
security_inode_notifysecctx(9), security_inode_setsecctx(9),
security_inode_getsecctx(9), security_post_notification(9),
security_watch_key(9), security_netlink_send(9),
security_unix_stream_connect(9), security_unix_may_send(9),
security_socket_create(9), security_socket_post_create(9),
security_socket_socketpair(9), security_socket_bind(9),
security_socket_connect(9), security_socket_listen(9),
security_socket_accept(9), security_socket_sendmsg(9),
security_socket_recvmsg(9), security_socket_getsockname(9),
security_socket_getpeername(9), security_socket_getsockopt(9),
security_socket_setsockopt(9), security_socket_shutdown(9),
security_sock_rcv_skb(9), security_socket_getpeersec_stream(9),
security_socket_getpeersec_dgram(9), lsm_sock_alloc(9),
security_sk_alloc(9), security_sk_free(9), security_sk_clone(9),
security_sk_classify_flow(9), security_req_classify_flow(9),
security_sock_graft(9), security_inet_conn_request(9),
security_inet_csk_clone(9), security_inet_conn_established(9),
security_secmark_relabel_packet(9), security_secmark_refcount_inc(9),
security_secmark_refcount_dec(9), security_tun_dev_alloc_security(9),
security_tun_dev_free_security(9), security_tun_dev_create(9),
security_tun_dev_attach_queue(9), security_tun_dev_attach(9),
security_tun_dev_open(9), security_sctp_assoc_request(9),
security_sctp_bind_connect(9), security_sctp_sk_clone(9),
security_sctp_assoc_established(9), security_mptcp_add_subflow(9),
security_unix_find(9), security_ib_pkey_access(9),
security_ib_endport_manage_subnet(9), security_ib_alloc_security(9),
security_ib_free_security(9), security_xfrm_policy_alloc(9),
security_xfrm_policy_clone(9), security_xfrm_policy_free(9),
security_xfrm_policy_delete(9), security_xfrm_state_alloc(9),
security_xfrm_state_alloc_acquire(9), security_xfrm_state_delete(9),
security_xfrm_state_free(9), security_xfrm_policy_lookup(9),
security_xfrm_state_pol_flow_match(9), security_xfrm_decode_session(9),
security_key_alloc(9), security_key_free(9), security_key_permission(9),
security_key_getsecurity(9), security_key_post_create_or_update(9),
security_audit_rule_init(9), security_audit_rule_known(9),
security_audit_rule_free(9), security_audit_rule_match(9),
security_bpf(9), security_bpf_map(9), security_bpf_prog(9),
security_bpf_map_create(9), security_bpf_prog_load(9),
security_bpf_token_create(9), security_bpf_token_cmd(9),
security_bpf_token_capable(9), security_bpf_map_free(9),
security_bpf_prog_free(9), security_bpf_token_free(9),
security_locked_down(9), security_bdev_alloc(9), security_bdev_free(9),
security_bdev_setintegrity(9), security_perf_event_open(9),
security_perf_event_alloc(9), security_perf_event_free(9),
security_perf_event_read(9), security_perf_event_write(9),
security_uring_override_creds(9), security_uring_sqpoll(9),
security_uring_cmd(9), security_uring_allowed(9),
security_initramfs_populated(9)
okay that's the whole page, no skips, no cuts, we ate and left zero crumbs π
and for the cute sign-off: this lil legend of a manpage comes from ./security, dated October 2026 β so yeah, she's from the future, main character energy confirmed ππ go free that inode responsibly bestie π§β¨
π¦ 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