]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit75b4878d772e3eef1e8314959f85c7f0e484eb91
tree822d14ecf505cb3f53e2afe3e1e7867bb32ca346
parentf86265a7b0f0703b47264bad6c5ace3511cda9ad
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