vfs_mknod(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME

vfs_mknod β€” create device node or file. okay so bestie, this is vfs_mknod(9) from the Kernel API Manual, and it's literally about creating a device node or file in kernel land. no cap, it's giving main-character filesystem energy. ✨


✨ SYNOPSIS ✨

the whole vibe is:

int vfs_mknod (struct mnt_idmap *idmap , struct inode *dir , struct
       dentry *dentry , umode_t mode , dev_t dev , struct delegated_inode
       *delegated_inode );

πŸŽ€ ARGUMENTS πŸŽ€

  • idmap β€” the idmap of the mount the inode was found from, iykyk 🫢
  • dir β€” inode of the parent directory
  • dentry β€” dentry of the child device node
  • mode β€” mode of the child device node
  • dev β€” device number of device to create
  • delegated_inode β€” returns parent inode, if the inode is delegated.

🌸 DESCRIPTION 🌸

bestie, this function literally creates a device node or file. that's the assignment. πŸ’…

now the important part, pay attention: 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. that's the move. 🫑

πŸ”— SEE ALSO πŸ”—

the kernel file ./fs/namei.c is the main character here, and it's bringing the whole group chat: 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), vfs_tmpfile(9), kernel_tmpfile_open(9), end_creating_path(9), dentry_create(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).


mwah πŸ’‹ that's the page, bestie β€” source ./fs, dated October 2026, and it's all for vfs_mknod(9). go create something cute (but like, in kernel space). πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from