From owner-cvs-src@FreeBSD.ORG Thu Mar 24 06:59:10 2005 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E420A16A4CE; Thu, 24 Mar 2005 06:59:10 +0000 (GMT) Received: from mail.chesapeake.net (chesapeake.net [208.142.252.6]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6854743D53; Thu, 24 Mar 2005 06:59:10 +0000 (GMT) (envelope-from jroberson@chesapeake.net) Received: from mail.chesapeake.net (localhost [127.0.0.1]) by mail.chesapeake.net (8.12.10/8.12.10) with ESMTP id j2O6x99P010731; Thu, 24 Mar 2005 01:59:09 -0500 (EST) (envelope-from jroberson@chesapeake.net) Received: from localhost (jroberson@localhost)j2O6x9Xf010717; Thu, 24 Mar 2005 01:59:09 -0500 (EST) (envelope-from jroberson@chesapeake.net) X-Authentication-Warning: mail.chesapeake.net: jroberson owned process doing -bs Date: Thu, 24 Mar 2005 01:59:08 -0500 (EST) From: Jeff Roberson To: Jeff Roberson In-Reply-To: <200503240608.j2O68wtF015240@repoman.freebsd.org> Message-ID: <20050324015815.E20708@mail.chesapeake.net> References: <200503240608.j2O68wtF015240@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: cvs-src@FreeBSD.org cc: src-committers@FreeBSD.org cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/sys vnode.h src/sys/kern vfs_subr.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Mar 2005 06:59:11 -0000 On Thu, 24 Mar 2005, Jeff Roberson wrote: > jeff 2005-03-24 06:08:58 UTC > > FreeBSD src repository > > Modified files: > sys/sys vnode.h > sys/kern vfs_subr.c > Log: > - If vput() is called with a shared lock it must upgrade to an exclusive > before it can call VOP_INACTIVE(). This must use the EXCLUPGRADE path > because we may violate some lock order with another locked vnode if > we drop and reacquire the lock. If EXCLUPGRADE fails, we mark the > vnode with VI_OWEINACT. This case should be very rare. This was definitely a bug with LOOKUP_SHARED, but I don't know that it caused anyone problems. I'm still thinking about more elegant ways of solving this as I add more shared lock support. > - Clear VI_OWEINACT in vinactive() and vbusy(). > - If VI_OWEINACT is set in vgone() do the VOP_INACTIVE call here as well. > > Sponsored by: Isilon Systems, Inc. > > Revision Changes Path > 1.597 +12 -3 src/sys/kern/vfs_subr.c > 1.294 +1 -0 src/sys/sys/vnode.h >