lkml.org 
[lkml]   [2018]   [Mar]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: dcache: remove trylock loops (was Re: [BUG] lock_parent() breakage when used from shrink_dentry_list())
    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.

    \
     
     \ /
      Last update: 2018-03-13 01:51    [W:5.404 / U:0.920 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site