Source-Changes-D archive

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

Re: CVS commit: src/sys/kern



On Thu Jan 14 2010 at 22:41:53 +0000, Manuel Bouyer wrote:
> Module Name:  src
> Committed By: bouyer
> Date:         Thu Jan 14 22:41:53 UTC 2010
> 
> Modified Files:
>       src/sys/kern: vfs_subr.c
> 
> Log Message:
> Remove KASSERT(vp->v_usecount == 1) in getnewvnode() and ungetnewvnode().
> Another process could be vget()ing the vnode and bump v_usecount while
> getcleanvnode() is vclean()ing it (as vclean drops the interlock).
> vget() will then wait for VI_XLOCK or VI_FREEING to clear; and we could test
> this assertion while the other process is still slepping. We could even
> end up in ungetnewvnode() before this other process got a chance to run.

Why doesn't the v_usecount == 1 check in getcleanvnode() work?


Home | Main Index | Thread Index | Old Index