Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 06 Mar 1995 07:15:39 -0800
From:      David Greenman <davidg@Root.COM>
To:        starkhome!gene@sbstark.cs.sunysb.edu (Gene Stark)
Cc:        current@FreeBSD.org, dyson@Root.COM
Subject:   Re: Page fault panics during make world in -current 
Message-ID:  <199503061515.HAA00571@corbin.Root.COM>
In-Reply-To: Your message of "Mon, 06 Mar 95 08:36:33 EST." <199503061336.IAA03921@starkhome.cs.sunysb.edu> 

next in thread | previous in thread | raw e-mail | index | archive | help
>In vfs_vnops.c, line 245:
>
>	if (vp->v_flag & VVMIO) {
>-->		vrele(vp);
>		if( vp->v_vmdata == NULL)
>			panic("vn_close: VMIO object missing");
>		vm_object_deallocate( (vm_object_t) vp->v_vmdata);
>	} else
>		vrele(vp);
>
>It seems wrong (or at least bad form), to access vp->v_vmdata after doing
>vrele(vp), as vp might no longer be valid.  It is not immediately clear that
>a sleep is possible during vrele(), but it isn't immediately clear the
>other way, either.

   The panic that immediately follows the vrele() guarantees that that wasn't
the last reference. As long as the object exists, the pager exists, and as
long as the pager exists, a reference is held to the vnode.

-DG



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199503061515.HAA00571>