dentry_create(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ dentry_create(9) β€” Create and open a file

okay so bestie, you're in the Kernel API Manual and this is the page for dentry_create(9) β€” let's get into it ✨


πŸ’– NAME

dentry_create β€” Create and open a file


πŸŽ€ SYNOPSIS

struct file * dentry_create (struct path *path , int flags , umode_t
mode , const struct cred *cred );

🌸 ARGUMENTS

  • path β€” path to create
  • flags β€” O_ flags
  • mode β€” mode bits for new file
  • cred β€” credentials to use

πŸ”₯ DESCRIPTION

So. Before you even breathe in this function's direction: the caller must hold the parent directory's lock, and must have already prepared a negative dentry and placed it in path->dentry for the new file. That's the whole prerequisite vibe check, no cap πŸ’…

The caller also sets path->mnt to the vfsmount of the filesystem where the new file is gonna be created. And here's the part people always get wrong: the parent directory and the negative dentry must reside on the same filesystem instance. Same instance. Don't mix them, it's giving chaos 😭

On success (slay πŸŽ‰), it returns a struct file *. Otherwise, an ERR_PTR is returned.


⌨️ SEE ALSO

Kernel file ./fs/namei.c:

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), 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 β€” go forth and create files responsibly 🫢

from ./fs, dated October 2026, with love πŸ’œ (that's the source/version and date, mwah πŸ“)

πŸ“¦ where this page comes from