Date: Thu, 24 Mar 2005 01:59:08 -0500 (EST) From: Jeff Roberson <jroberson@chesapeake.net> To: Jeff Roberson <jeff@FreeBSD.org> Cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/sys vnode.h src/sys/kern vfs_subr.c Message-ID: <20050324015815.E20708@mail.chesapeake.net> In-Reply-To: <200503240608.j2O68wtF015240@repoman.freebsd.org> References: <200503240608.j2O68wtF015240@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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 >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050324015815.E20708>