untangle the "need_reval_dot" mess
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 22 Feb 2011 20:50:10 +0000 (15:50 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 14 Mar 2011 13:15:24 +0000 (09:15 -0400)
commit16c2cd7179881d5dd87779512ca5a0d657c64f62
tree822d14ecf505cb3f53e2afe3e1e7867bb32ca346
parentfe479a580dc9c737c4eb49ff7fdb31d41d2c7003
untangle the "need_reval_dot" mess

instead of ad-hackery around need_reval_dot(), do the following:
set a flag (LOOKUP_JUMPED) in the beginning of path, on absolute
symlink traversal, on ".." and on procfs-style symlinks.  Clear on
normal components, leave unchanged on ".".  Non-nested callers of
link_path_walk() call handle_reval_path(), which checks that flag
is set and that fs does want the final revalidate thing, then does
->d_revalidate().  In link_path_walk() all the return_reval stuff
is gone.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/namei.c
include/linux/namei.h