| 5bd73286d50f ("fix a braino in legitimize_path()") |
| 2aa38470853a ("non-RCU analogue of the previous commit") |
| 7ef482fa6551 ("helper for mount rootwards traversal") |
| 165200d6cb88 ("follow_dotdot(): be lazy about changing nd->path") |
| efe772d6283b ("follow_dotdot_rcu(): be lazy about changing nd->path") |
| 12487f3067d8 ("follow_dotdot{,_rcu}(): massage loops") |
| c2df19687660 ("lift all calls of step_into() out of follow_dotdot/follow_dotdot_rcu") |
| 6dfd9fe54dfd ("follow_dotdot{,_rcu}(): switch to use of step_into()") |
| 7521f22b3ce2 ("handle_dots(), follow_dotdot{,_rcu}(): preparation to switch to step_into()") |
| 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") |
| c981a4828125 ("split the lookup-related parts of do_last() into a separate helper") |
| 973d4b73fbaf ("do_last(): rejoin the common path even earlier in FMODE_{OPENED,CREATED} case") |
| 8795e7d48288 ("do_last(): simplify the liveness analysis past finish_open_created") |
| 5a2d3edd8dad ("do_last(): rejoing the common path earlier in FMODE_{OPENED,CREATED} case") |
| 59e96e65833e ("do_last(): don't bother with keeping got_write in FMODE_OPENED case") |
| 3ad5615a071f ("do_last(): merge the may_open() calls") |
| 7be219b4dcd9 ("atomic_open(): lift the call of may_open() into do_last()") |
| 6fb968cdf9d0 ("atomic_open(): return the right dentry in FMODE_OPENED case") |
| 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") |
| 6404674acd59 ("vfs: fix do_last() regression") |
| 6aee4badd812 ("Merge branch 'work.openat2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs") |