| 957dd41d8842 ("move handle_dots(), follow_dotdot() and follow_dotdot_rcu() past step_into()") |
| c9a0f75d81e3 ("follow_dotdot{,_rcu}(): lift LOOKUP_BENEATH checks out of loop") |
| abc2c632e0ce ("follow_dotdot{,_rcu}(): lift switching nd->path to parent out of loop") |
| a6a7eb7628cf ("expand path_parent_directory() in its callers") |
| 63b27720a476 ("path_parent_directory(): leave changing path->dentry to callers") |
| 6b03f7edf43e ("path_connected(): pass mount and dentry separately") |
| b1a819724074 ("pick_link(): check for WALK_TRAILING, not LOOKUP_PARENT") |
| 8c4efe22e7c4 ("namei: invert the meaning of WALK_FOLLOW") |
| ad6cc4c338f4 ("finally fold get_link() into pick_link()") |
| 06708adb99e8 ("merging pick_link() with get_link(), part 6") |
| b0417d2c7298 ("merging pick_link() with get_link(), part 5") |
| 92d270165cff ("merging pick_link() with get_link(), part 4") |
| 40fcf5a931af ("merging pick_link() with get_link(), part 3") |
| 1ccac622f9da ("merging pick_link() with get_link(), part 2") |
| 43679723d27f ("merging pick_link() with get_link(), part 1") |
| cbae4d12eeee ("fold handle_mounts() into step_into()") |
| aca2903eefd0 ("new step_into() flag: WALK_NOFOLLOW") |
| 56676ec39019 ("step_into() callers: dismiss the symlink earlier") |
| 20e343571cef ("lookup_fast(): take mount traversal into callers") |
| c153007b7b7a ("teach handle_mounts() to handle RCU mode") |
| b023e1728bec ("lookup_fast(): consolidate the RCU success case") |
| db3c9ade50b1 ("handle_mounts(): pass dentry in, turn path into a pure out argument") |
| e73cabff5917 ("do_last(): collapse the call of path_to_nameidata()") |
| da5ebf5aa676 ("lookup_open(): saner calling conventions (return dentry on success)") |
| 239eb983383b ("atomic_open(): saner calling conventions (return dentry on success)") |
| bd7c4b508344 ("handle_mounts(): start building a sane wrapper for follow_managed()") |
| 31d1726d7250 ("make build_open_flags() treat O_CREAT | O_EXCL as implying O_NOFOLLOW") |
| ab87f9a56c8e ("namei: LOOKUP_{IN_ROOT,BENEATH}: permit limited ".." resolution") |
| 8db52c7e7ee1 ("namei: LOOKUP_IN_ROOT: chroot-like scoped resolution") |
| adb21d2b526f ("namei: LOOKUP_BENEATH: O_BENEATH-like scoped resolution") |
| 72ba29297e14 ("namei: LOOKUP_NO_XDEV: block mountpoint crossing") |
| 4b99d4996979 ("namei: LOOKUP_NO_MAGICLINKS: block magic-link resolution") |
| 278121417a72 ("namei: LOOKUP_NO_SYMLINKS: block symlink resolution") |
| 740a16782750 ("namei: allow set_root() to produce errors") |
| 1bc82070fa27 ("namei: allow nd_jump_link() to produce errors") |
| 2b98149c2377 ("namei: only return -ECHILD from follow_dotdot_rcu()") |
| d41efb522e90 ("fs/namei.c: pull positivity check into follow_managed()") |
| ee594bfff389 ("fs/namei.c: new helper - legitimize_root()") |
| 4c4f7c19b3c7 ("vfs: use READ_ONCE() to access ->i_link") |