complete_walk(9)
π complete_walk(9) β the Kernel API Manual, bestie edition π¦
okay so real talk, this page lives in the complete_walk(9) section of the Kernel API Manual and it's literally the "we made it, now let's make it official" moment of a path walk. no cap, it's short but it matters. β¨
πΈ NAME πΈ
complete_walk β the successful-completion glow-up of a path walk π
β SYNOPSIS β
int complete_walk (struct nameidata *nd );
π«Ά ARGUMENTS π«Ά
ndβ a pointer to thenameidatastruct, aka the lil' state buddy carrying this whole walk around. she's the main character here π
π DESCRIPTION π
okay so picture this: if we had been chilling in RCU mode, we drop out of it and legitimize nd->path. that's it, that's the vibe shift β we're leaving the fast-and-loose era behind and making the path official. β¨
then we revalidate the final result β unless we'd already done that during the path walk, or the filesystem just doesn't ask for it. (like, respectfully, if it's already handled or nobody requested the check, we're not doing extra credit π)
we return 0 on success, and -error on failure. and here's the sweet part, bestie: in case of failure, the caller does not need to drop nd->path. so don't panic-cleanup, it's handled π«Ά
π₯ SEE ALSO π₯
the whole friend group, ./fs/namei.c edition β literally the entire kernel file's cast list, iykyk π:
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),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)
bestie reminder:complete_walkhands you back a legitnd->pathβ but on failure you do not have to dropnd->path. please don't double-free out of sheer enthusiasm π
and that's the whole page, periodt π this cutie comes from ./fs and is dated October 2026 β so yeah, screenshot it, cite it, frame it, it's iconic ππ
π¦ 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