tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: NFS panic
On Thu, Nov 08, 2012 at 12:45:55PM +0100, J. Hannken-Illjes wrote:
> To make it short, Manuels fix was right, me removing it and trying to get it
> done in vn_lock() is wrong.
>
> While vget() vs. cleanvnode() (the cleaner) was always free of races,
> vget() vs. vrelel() is not. Manuels fix checking the vnode state when
> vrelel()
> got its vnode lock and before it starts inactivating and cleaning is right.
>
> Please try the attached diff that brings back the fix.
I'm not sure how this would fix it. Although there may also be a race
bwteen vget() and vrelel(), the race I described is really between
vget() and cleanvnode() here (more specifically, vget() and vclean(), which is
used by both cleanvnode() and vrelel()). I can't see how your patch would fix
this one.
BTW, in your patch you clear (VI_INACTREDO|VI_INACTNOW), while INACTREDO is
cleared 2 lines later. You could delete this second line I guess :)
--
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
NetBSD: 26 ans d'experience feront toujours la difference
--
Home |
Main Index |
Thread Index |
Old Index