vfs_tmpfile(9)
okay so you're here for vfs_tmpfile(9) from the Kernel API Manual, and bestie, this page is lowkey a whole vibe: kernel-level temporary-file creation with idmap lore. Let's get into it π
β¨
π NAME π
vfs_tmpfile β create tmpfile π
β¨ SYNOPSIS β¨
Here's the signature in all its exact glory β don't touch the spacing, bestie:
int vfs_tmpfile (struct mnt_idmap *idmap , const struct path *parentpath
, struct file *file , umode_t mode );
π ARGUMENTS π
idmapβ idmap of the mount the inode was found from π«Άparentpathβ pointer to the path of the base directory πΈfileβ file descriptor of the new tmpfile β¨modeβ mode of the new tmpfile π
π¦ DESCRIPTION π¦
Create a temporary file. That's the headline, and it's iconic π
If the inode has been found through an idmapped mount the idmap of the vfsmount must be passed through idmap. This function will then take care to map the inode according to idmap before checking permissions. On non-idmapped mounts or if permission checking is to be performed on the raw inode simply pass nop_mnt_idmap.
bestie, the idmap choice is the whole plot twist here β use the mount'sidmapwhen it's idmapped, ornop_mnt_idmapwhen you're on a non-idmapped mount / doing permission checking on the raw inode π
π SEE ALSO π
Kernel file ./fs/namei.c is the backstage pass, and the whole squad rolls deep β every single one of these cuties is listed here, fr fr:
check_acl(9),acl_permission_check(9),generic_permission(9),do_inode_permission(9),sb_permission(9),inode_permission(9)path_get(9),path_put(9),path_connected(9),try_to_unlazy(9),try_to_unlazy_next(9),complete_walk(9)may_follow_link(9),safe_hardlink_source(9),may_linkat(9),may_create_in_sticky(9),lookup_fast(9),start_dirop(9),end_dirop(9)kern_path_parent(9),vfs_path_parent_lookup(9),vfs_path_lookup(9),try_lookup_noperm(9),lookup_noperm(9)lookup_one(9),lookup_one_unlocked(9),lookup_one_positive_killable(9),lookup_one_positive_unlocked(9),lookup_noperm_unlocked(9)start_creating(9),start_removing(9),start_creating_killable(9),start_removing_killable(9),start_creating_noperm(9),start_removing_noperm(9)start_creating_dentry(9),start_removing_dentry(9),__start_renaming(9),start_renaming(9),start_renaming_dentry(9),start_renaming_two_dentries(9)vfs_prepare_mode(9),vfs_create(9),atomic_open(9),vfs_lookup_open(9),kernel_tmpfile_open(9),end_creating_path(9),dentry_create(9)vfs_mknod(9),vfs_mkdir(9),vfs_rmdir(9),vfs_unlink(9),vfs_symlink(9),vfs_link(9),vfs_rename(9)vfs_readlink(9),vfs_get_link(9),page_get_link(9),page_put_link(9)
and that's the whole page, bestie π«Ά vfs_tmpfile(9) sign-off: source/version ./fs; date October 2026. go make that tmpfile with main character energy π
β¨
π¦ 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