start_dirop(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… start_dirop β€” the Kernel API Manual, but make it make sense

okay so bestie, welcome to start_dirop(9), straight out of the Kernel API Manual. this one's the opening act for create and remove dirops β€” it does the locking and the lookup for you so you don't have to ✨


🌸 NAME 🌸

start_dirop β€” kick off a create or remove dirop, and yeah it handles the locking and the lookup while it's at it πŸŽ€

✨ SYNOPSIS ✨

struct dentry * start_dirop (struct dentry *parent , struct qstr *name ,
unsigned int lookup_flags );

🫢 ARGUMENTS 🫢

  • parent β€” the dentry of the parent, like, the directory where the whole operation is gonna go down πŸ’–
  • name β€” a qstr holding the name inside that parent. iykyk.
  • lookup_flags β€” the intent flag plus whatever other lookup flags you're bringing to the party 🌈

πŸ‘‘ DESCRIPTION πŸ‘‘

so here's the vibe: the lookup gets performed, and the necessary locks get taken, so that β€” on success β€” the dentry you get back can be operated on safely. no cap, that's the whole point πŸ”₯

one thing though, and it's giving important: the qstr must already have the hash value calculated. like, that's not optional, bestie. do it before you call this. πŸ’€

⭐ RETURN ⭐

a locked dentry, or an error. that's it, that's the deal πŸ¦‹

πŸ’œ SEE ALSO πŸ’œ

Kernel file ./fs/namei.c β€” and honestly the whole friend group showed up, so:

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), 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_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)


ngl, if you're reading this page you're probably deep in fs/namei.c and that's main character energy. we love that for you πŸ’…

okay that's the whole page, bestie πŸ“ this one came from ./fs and it's dated October 2026 β€” mwah, catch you in the next manpage πŸ˜­πŸ’–

πŸ“¦ where this page comes from