From owner-cvs-src@FreeBSD.ORG Sun Mar 9 15:09:23 2008 Return-Path: Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1B3FE1065670; Sun, 9 Mar 2008 15:09:23 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0283A8FC13; Sun, 9 Mar 2008 15:09:23 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m29F9MHv025567; Sun, 9 Mar 2008 15:09:22 GMT (envelope-from rwatson@repoman.freebsd.org) Received: (from rwatson@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m29F9MVf025566; Sun, 9 Mar 2008 15:09:22 GMT (envelope-from rwatson) Message-Id: <200803091509.m29F9MVf025566@repoman.freebsd.org> From: Robert Watson Date: Sun, 9 Mar 2008 15:09:22 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: RELENG_7 Cc: Subject: cvs commit: src/sys/fs/coda coda_vnops.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 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: Sun, 09 Mar 2008 15:09:23 -0000 rwatson 2008-03-09 15:09:22 UTC FreeBSD src repository Modified files: (Branch: RELENG_7) sys/fs/coda coda_vnops.c Log: Merge coda_vnops.c:1.86 from HEAD to RELENG_7: Before invoking vnode operations on cache vnodes, acquire the vnode locks of those vnodes. Probably, Coda should do the same lock sharing/ pass-through that is done for nullfs, but in the mean time this ensures that locks are adequately held to prevent corruption of data structures in the cache file system. Assuming most operations came from the top layer of Coda and weren't performed directly on the cache vnodes, in practice this corruption was relatively unlikely as the Coda vnode locks were ensuring exclusive access for most consumers. This causes WITNESS to squeal like a pig immediately when Coda is used, rather than waiting until file close; I noticed these problems because of the lack of said squealing. NB: Because WITNESS in RELENG_7 doesn't yet support lockmgr, said squealing doesn't yet happen in RELENG_7, but will do if/when lockmgr grows support for WITNESS there. Revision Changes Path 1.76.2.2 +9 -1 src/sys/fs/coda/coda_vnops.c