On Tue, Mar 13, 2018 at 12:37:51AM +0000, Al Viro wrote: > On Mon, Mar 12, 2018 at 06:52:31PM -0500, Eric W. Biederman wrote: > > > Ah. I see now there is now the s_roots list that handles > > that bit of strangeness. > > > > So one path is to simply remove the heuristic from > > path_connected. > > > > Another path is to have nfsv2 and nfsv3 not set s_root at all. > > Leaving the heuristic working for the rest of the filesystems, > > and generally simplifying the code. > > > > Something like the diff below I should think. > > > + /* Leave nfsv2 and nfsv3 s_root == NULL */ > > Now, grep fs/super.c for s_root. Or try to boot it, for that > matter... BTW, if rename happens on server and we step into directory we'd already seen in one subtree while doing a lookup in another, we will get it moved around. Without having the subtrees ever connected in dcache on client. So adding && IS_ROOT(sb->s_root) to the test also won't work.