lookup_noperm_unlocked(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay so bestie β€” welcome to the Kernel API Manual page for lookup_noperm_unlocked(9) ✨ this one is lowkey niche and highkey filesystem-internals coded, so let's get into it 🫢

πŸŽ€ NAME πŸŽ€

lookup_noperm_unlocked β€” filesystem helper to lookup a single pathname component. iconic. πŸ’…

✨ SYNOPSIS ✨

struct dentry * lookup_noperm_unlocked (struct qstr *name , struct
dentry *base );

🫢 ARGUMENTS 🫢

  • name β€” pathname component to lookup πŸŽ€
  • base β€” base directory to lookup from πŸ¦‹

πŸ’… DESCRIPTION πŸ’…

okay so first thing, bestie: this routine is purely a helper for filesystem usage and should not be called by generic code. she does no permission checking β€” zero, none, periodt. 🚨

🚨 bestie, do not call this from generic code β€” it's a filesystem helper only. and yes, it does no permission checking. no cap.

Unlike lookup_noperm, you call her without the parent i_rwsem held, and she will take the i_rwsem herself if necessary. main character energy fr fr πŸ’…

Unlike try_lookup_noperm, she does revalidate the dentry if it already existed. not me being surprised, but okay πŸ‘‘

πŸ”₯ RETURN πŸ”₯

Returns a dentry, possibly negative, or:

  • ERR_PTR(-ENOENT) β€” if parent has been removed, or
  • same errors as try_lookup_noperm β€” yeah, those.

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


and that's the whole page, bestie 🫢 source/version: ./fs; date: October 2026; page: lookup_noperm_unlocked(9) β€” mwah πŸ’‹

πŸ“¦ where this page comes from