Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 2 Feb 2002 13:27:21 -0600
From:      "Jacques A. Vidrine" <n@nectar.cc>
To:        Dag-Erling Smorgrav <des@ofug.org>
Cc:        se@FreeBSD.org, Kirk McKusick <mckusick@FreeBSD.org>, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/kern vfs_subr.c
Message-ID:  <20020202132721.A65496@hellblazer.nectar.cc>
In-Reply-To: <xzpg04jheoz.fsf@flood.ping.uio.no>; from des@ofug.org on Sat, Feb 02, 2002 at 08:22:04PM %2B0100
References:  <200202020149.g121nJI67647@freefall.freebsd.org> <xzpg04jheoz.fsf@flood.ping.uio.no>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Feb 02, 2002 at 08:22:04PM +0100, Dag-Erling Smorgrav wrote:
> Kirk McKusick <mckusick@FreeBSD.org> writes:
> >   Log:
> >   In the routines vrele() and vput(), we must lock the vnode and
> >   call VOP_INACTIVE before placing the vnode back on the free list.
> >   Otherwise there is a race condition on SMP machines between
> >   getnewvnode() locking the vnode to reclaim it and vrele()
> >   locking the vnode to inactivate it. This window of vulnerability
> >   becomes exaggerated in the presence of filesystems that have
> >   been suspended as the inactive routine may need to temporarily
> >   release the lock on the vnode to avoid deadlock with the syncer
> >   process.
> 
> I think this might be the cause of the panic some people saw in procfs
> a couple of months ago; getvnode() would sometimes return a vnode that
> had already been reclaimed, and fstatfs() would dereference a NULL
> pointer.  This was "fixed" by adding an extra check to fstatfs() in
> rev 1.216 of vfs_syscalls.c; this check is probably unnecessary now.

Perhaps Stefan can comment on this.  He was able to reproduce the
problem at will.  Stefan?
-- 
Jacques A. Vidrine <n@nectar.cc>                     http://www.nectar.cc/
NTT/Verio SME           .      FreeBSD UNIX      .        Heimdal Kerberos
jvidrine@verio.net      .   nectar@FreeBSD.org   .           nectar@kth.se

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




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