start_creating_dentry(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… start_creating_dentry(9)

okay so this is a page from the Kernel API Manual (Linux kernel docs, we're in the big leagues bestie) and it's all about getting a dentry ready to be created. yes. that's the whole vibe. let's go πŸŽ€


✨ NAME ✨

start_creating_dentry β€” prepare to create a given dentry


🌸 SYNOPSIS 🌸

struct dentry * start_creating_dentry (struct dentry *parent , struct dentry *child );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • parent β€” directory from which dentry should be removed
  • child β€” the dentry to be removed
okay so real talk: the page literally says "removed" for both of these even though we're creating, not removing 😭 that's what the manpage says, so that's what you get. no cap, i'm not editing it, i'm just the messenger 🫢

πŸ’– DESCRIPTION πŸ’–

so first thing: a lock is taken πŸ”’ β€” that's to protect the dentry against other dirops, and then the validity of the dentry gets checked: correct parent, and still hashed. vibe check on the dentry, basically.

if the dentry is valid and negative, a reference is taken and returned ✨. if not? an error comes back. that's it, that's the deal.

and then β€” super important β€” end_creating should be called when creation is complete, or aborted. like, don't just walk away from it, bestie πŸ’€ always close the loop.


πŸ‘‘ RETURN πŸ‘‘

the valid dentry, or an error.


🧚 SEE ALSO 🧚

Kernel file ./fs/namei.c, plus this absolutely iconic list of friends:

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_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_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, no notes πŸ’… it lives in ./fs, dated October 2026, and the header up top is start_creating_dentry(9) in case you forgot where you were 🌈 mwah, go create some dentries responsibly πŸ“

πŸ“¦ where this page comes from