DragonFly BSD
DragonFly kernel List (threaded) for 2005-02
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: namecache: locks and races


To: dillon@xxxxxxxxxxxxxxxxxxxx
From: Richard Nyberg <rnyberg@xxxxxxxx>
Date: Fri, 11 Feb 2005 08:34:47 +0100

At Thu, 10 Feb 2005 11:02:09 -0800 (PST),
Matthew Dillon wrote:
>     Ahhh.  This clears things up!   Very nice debugging printfs.   It makes
>     it completely obvious.
> 
>     What is happening is that cache_resolve() is creating a child node 
>     under home at the same time cache_inval() is trying to invalidate it.
> 
>     Hmm.  Ok.  I think I might have been a bit overzelous in the retry code. 
>     It isn't actually necessary to re-destroy new associations created
>     while cache_inval is recursing on the children.  We only need to destroy
>     the *old* associations.  This means we can take just a single-pass
>     through and get rid of the retry code entirely.
>
>     The only place where it really matters is in cache_rename(), but that
>     case can be handled in cache_rename() itself.

Actually, I was thinking that the retry may be unnecessary when I first
looked at cache_inval. I wasn't really sure about what all callers expected
though.

>     I really appreciate the work you are doing, the new namecache code is
>     the cornerstone of a great deal of already completed and up-and-coming
>     VFS code and we have to make sure it works properly.
> 
>     Please try this patch.
> 
Works great.

Thanks!
        -Richard




[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]