Re: namecache: locks and races

看板DFBSD_kernel作者時間21年前 (2005/02/11 16:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/5 (看更多)
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
文章代碼(AID): #1236P300 (DFBSD_kernel)
文章代碼(AID): #1236P300 (DFBSD_kernel)