summaryrefslogtreecommitdiff
path: root/include/linux/namei.h
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2019-11-05 06:30:52 +0300
committerAl Viro <viro@zeniv.linux.org.uk>2019-11-15 21:49:04 +0300
commitd41efb522e902364ab09c782d511c1bedc388ddd (patch)
treeb68fc238833ef18e63add150a3217e82f0af450b /include/linux/namei.h
parent3e5aeec0e267d4422a4e740ce723549a3098a4d1 (diff)
downloadlinux-d41efb522e902364ab09c782d511c1bedc388ddd.tar.xz
fs/namei.c: pull positivity check into follow_managed()
There are 4 callers; two proceed to check if result is positive and fail with ENOENT if it isn't; one (in handle_lookup_down()) is guaranteed to yield positive and one (in lookup_fast()) is _preceded_ by positivity check. However, follow_managed() on a negative dentry is a (fairly cheap) no-op on anything other than autofs. And negative autofs dentries are never hashed, so lookup_fast() is not going to run into one of those. Moreover, successful follow_managed() on a _positive_ dentry never yields a negative one (and we significantly rely upon that in callers of lookup_fast()). In other words, we can easily transpose the positivity check and the call of follow_managed() in lookup_fast(). And that allows to fold the positivity check *into* follow_managed(), simplifying life for the code downstream of its calls. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/linux/namei.h')
0 files changed, 0 insertions, 0 deletions