security_backing_file_alloc(9)
π
security_backing_file_alloc(9) β Kernel API Manual energy β¨
okay so bestie, we're in the Kernel API Manual section today and this one is literally about giving a backing file its very own LSM blob π like, allocating it, setting it up, the whole glow-up. stay with me, it's not scary, i promise π«Ά
β¨ NAME β¨
security_backing_file_alloc β allocate and setup a backing file blob π
π¦ SYNOPSIS π¦
int security_backing_file_alloc (struct file *backing_file , const
struct file *user_file );
πΈ ARGUMENTS πΈ
backing_fileβ the backing file π (main character, honestly)user_fileβ the associated user visible file, aka its plus-one π
π DESCRIPTION π
so what this does is: it allocates a backing file LSM blob and then does any necessary initialization of that LSM blob β¨ that's the whole job. no cap.
but here's the part you actually need to hear, bestie π β there will be some operations where the LSM will not have access to user_file after this point π so any important state that's associated with user_file and that matters to the LSM? capture it in the backing file's LSM blob right now. this is your moment. grab the lore while it's still in the room π«Ά
and a very serious vibe check: LSM's should avoid taking a reference to user_file in this hook π« because that will result in problems later when the system attempts to drop/put the file references β due to a circular dependency π don't do it. fr fr. it's giving bad idea and we are NOT doing that.
β RETURN β
Return 0 if the hook is successful π negative values otherwise π
π§ SEE ALSO π§
the linked lore starts with Kernel file ./security/security.c and then, okay, deep breath, it's a lot but we list every single one because we don't skip β¨
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_inode_free(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_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)
and that's the page bestie, no notes π
this one lives under ./security and the docs are stamped October 2026 β go be a menace to circular dependencies and slay β¨π¦π
π¦ 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