try_to_unlazy_next(9)
β¨ try_to_unlazy_next β¨
okay so bestie, this is a page from the Kernel API Manual β yeah, the Kernel API Manual β and the star of the show is try_to_unlazy_next(9). buckle up π
πΈ NAME πΈ
try_to_unlazy_next β the "try to switch to ref-walk mode" girlie π
π¦ SYNOPSIS π¦
bool try_to_unlazy_next (struct nameidata *nd , struct dentry *dentry );
π ARGUMENTS π
ndβ the nameidata pathwalk data. it's the walk state, it holds everything, be nice to it π«Άdentryβ the next dentry to step into. like, the next one, yk? the one you're about to hop into β¨
π₯ RETURN π₯
trueon success πfalseon failure π
that's it. that's the whole return contract. no cap.
π DESCRIPTION π
so it's similar to try_to_unlazy, right β except here we've already got the next dentry picked out by rcu-walk, and we want to legitimize that one in addition to the current nd->path and nd->root for ref-walk mode. the way it's doing double dutyβ¦ iconic honestly π
β οΈ it must be called from rcu-walk context. not optional, not a vibe suggestion, fr fr.
π and β huge one β nothing should touchnameidatabetweentry_to_unlazy_nextfailure andterminate_walk. like, hands off. do not pass go, do not touchnameidata, wait forterminate_walk. that window is not for you bestie π
π SEE ALSO π
Kernel file ./fs/namei.c β and honestly the whole friend group is here, so let me introduce you π
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)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_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)
like I said. the whole friend group. iykyk π
mwah, that's the page!! this little number lives in the ./fs source, and it's dated October 2026 β so go forth, switch to ref-walk mode responsibly, and remember: no touching nameidata in the timeout corner π§π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms