From owner-cvs-all Fri Feb 1 17:50: 8 2002 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 2A41837B429; Fri, 1 Feb 2002 17:49:19 -0800 (PST) Received: (from mckusick@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g121nJI67647; Fri, 1 Feb 2002 17:49:19 -0800 (PST) (envelope-from mckusick) Message-Id: <200202020149.g121nJI67647@freefall.freebsd.org> From: Kirk McKusick Date: Fri, 1 Feb 2002 17:49:19 -0800 (PST) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/kern vfs_subr.c X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG mckusick 2002/02/01 17:49:19 PST Modified files: sys/kern vfs_subr.c 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. Revision Changes Path 1.340 +15 -15 src/sys/kern/vfs_subr.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message