On Sun, Apr 2, 2017 at 5:43 PM, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > > Do you have any objections against the following (still untested) variant? > I don't see any point in checking for flags & LOOKUP_RCU in case of !*s - > flags is in register at that point, so... Looks sane to me. I had to go and double-check that "DCACHE_DIRECTORY_TYPE" is what d_can_lookup() actually checks, so _that_ part is perhaps a bit subtle, and might be worth noting in that comment that you edited. So the real "rule" ends up being that we only ever look up things from dentries of type DCACHE_DIRECTORY_TYPE set, and those had better have DCACHE_RCUACCESS bit set. And the only reason path_init() only checks it for that case is that nd->root and nd->pwd both have to be of type d_can_lookup(). Do we check that when we set it? I hope/assume we do. Linus