panic: lock (sleep mutex) vnode interlock not locked

Don Lewis truckman at FreeBSD.org
Wed Aug 10 06:11:23 GMT 2005


On  9 Aug, Alexander Kabaev wrote:
> On Tue, Aug 09, 2005 at 10:33:12PM +0200, Thierry Herbelot wrote:
>> Hello,
>> 
>> I'm seeing the above panic on two machines (SMP BP6 and a notebook) with 
>> recent -Current (certainly "heisenbug" : the same kernel runs happily on the 
>> notebook).
>> The panic log on the SMP machine follows.
>> 
>> 	TfH
> <SKIP>
> 
> Hi,
> 
> could you try an patch below?
> 
> Index: vfs_subr.c
> ===================================================================
> RCS file: /home/ncvs/src/sys/kern/vfs_subr.c,v
> retrieving revision 1.638
> diff -u -r1.638 vfs_subr.c
> --- vfs_subr.c	6 Aug 2005 01:42:03 -0000	1.638
> +++ vfs_subr.c	9 Aug 2005 23:51:44 -0000
> @@ -2333,10 +2333,8 @@
>  	/*
>  	 * Don't vgonel if we're already doomed.
>  	 */
> -	if (vp->v_iflag & VI_DOOMED) {
> -		VI_UNLOCK(vp);
> +	if (vp->v_iflag & VI_DOOMED)
>  		return;
> -	}
>  	vp->v_iflag |= VI_DOOMED;
>  	/*
>  	 * Check to see if the vnode is in use.  If so, we have to call


I also noticed this inconsistency in vgonel() a couple hours ago and
made exactly the same change in my local source.  No problems so far,
but I suspect this bug is difficult to trigger.  It's been present in
the code for a couple of months.

The same problem is present in RELENG_6, so this fix is probably a MFC
candidate for 6.0.



More information about the freebsd-current mailing list