From owner-cvs-all@FreeBSD.ORG Sun Mar 23 00:30:43 2008 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9B4F81065670; Sun, 23 Mar 2008 00:30:43 +0000 (UTC) (envelope-from jroberson@chesapeake.net) Received: from webaccess-cl.virtdom.com (webaccess-cl.virtdom.com [216.240.101.25]) by mx1.freebsd.org (Postfix) with ESMTP id 5C98B8FC18; Sun, 23 Mar 2008 00:30:43 +0000 (UTC) (envelope-from jroberson@chesapeake.net) Received: from [10.0.1.200] (cpe-24-94-72-120.hawaii.res.rr.com [24.94.72.120]) (authenticated bits=0) by webaccess-cl.virtdom.com (8.13.6/8.13.6) with ESMTP id m2N0Uc5W017354; Sat, 22 Mar 2008 20:30:39 -0400 (EDT) (envelope-from jroberson@chesapeake.net) Date: Sat, 22 Mar 2008 14:31:51 -1000 (HST) From: Jeff Roberson X-X-Sender: jroberson@desktop To: Alfred Perlstein In-Reply-To: <20080322224253.GS67856@elvis.mu.org> Message-ID: <20080322142838.Y910@desktop> References: <200803220915.m2M9FG8b051782@repoman.freebsd.org> <20080322224253.GS67856@elvis.mu.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: cvs-src@freebsd.org, Jeff Roberson , src-committers@freebsd.org, cvs-all@freebsd.org Subject: Re: cvs commit: src/sys/fs/msdosfs msdosfs_vfsops.c src/sys/kern vfs_bio.c vfs_cluster.c vfs_default.c vfs_subr.c src/sys/nfs4client nfs4_vfsops.c nfs4_vnops.c src/sys/nfsclient nfs_subs.c nfs_vfsops.c nfs_vnops.c src/sys/nfsserver nfs_serv.c ... X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Mar 2008 00:30:43 -0000 On Sat, 22 Mar 2008, Alfred Perlstein wrote: > * Jeff Roberson [080322 02:15] wrote: >> jeff 2008-03-22 09:15:16 UTC >> >> FreeBSD src repository >> >> Modified files: >> sys/fs/msdosfs msdosfs_vfsops.c >> sys/kern vfs_bio.c vfs_cluster.c vfs_default.c >> vfs_subr.c >> sys/nfs4client nfs4_vfsops.c nfs4_vnops.c >> sys/nfsclient nfs_subs.c nfs_vfsops.c nfs_vnops.c >> sys/nfsserver nfs_serv.c >> sys/sys buf.h bufobj.h >> sys/ufs/ffs ffs_inode.c ffs_rawread.c ffs_softdep.c >> ffs_vfsops.c ffs_vnops.c >> Log: >> - Complete part of the unfinished bufobj work by consistently using >> BO_LOCK/UNLOCK/MTX when manipulating the bufobj. >> - Create a new lock in the bufobj to lock bufobj fields independently. >> This leaves the vnode interlock as an 'identity' lock while the bufobj >> is an io lock. The bufobj lock is ordered before the vnode interlock >> and also before the mnt ilock. > > What is an "identity lock"? Does that mean it just protects the > pointer? Well this is my own rough term meaning it helps protect things related to the identity of the vnode. Or the maping from {fs, inode} to vnode. This includes the reference counts, various flags, etc. The vnode interlock is often used to pin the identity until we go to sleep on the lockmgr lock. After we wakeup with the lock held we check that the identity hasn't changed by using VI_DOOMED. Thanks, Jeff > >> - Exploit this new lock order to simplify softdep_check_suspend(). >> - A few sync related functions are marked with a new XXX to note that >> we may not properly interlock against a non-zero bv_cnt when >> attempting to sync all vnodes on a mountlist. I do not believe this >> race is important. If I'm wrong this will make these locations easier >> to find. >> >> Reviewed by: kib (earlier diff) >> Tested by: kris, pho (earlier diff) >> >> Revision Changes Path >> 1.187 +4 -0 src/sys/fs/msdosfs/msdosfs_vfsops.c >> 1.541 +5 -4 src/sys/kern/vfs_bio.c >> 1.177 +18 -13 src/sys/kern/vfs_cluster.c >> 1.143 +12 -15 src/sys/kern/vfs_default.c >> 1.722 +29 -25 src/sys/kern/vfs_subr.c >> 1.33 +1 -0 src/sys/nfs4client/nfs4_vfsops.c >> 1.42 +23 -29 src/sys/nfs4client/nfs4_vnops.c >> 1.154 +8 -5 src/sys/nfsclient/nfs_subs.c >> 1.203 +1 -0 src/sys/nfsclient/nfs_vfsops.c >> 1.282 +27 -33 src/sys/nfsclient/nfs_vnops.c >> 1.179 +7 -8 src/sys/nfsserver/nfs_serv.c >> 1.204 +1 -1 src/sys/sys/buf.h >> 1.20 +8 -16 src/sys/sys/bufobj.h >> 1.110 +5 -4 src/sys/ufs/ffs/ffs_inode.c >> 1.32 +11 -16 src/sys/ufs/ffs/ffs_rawread.c >> 1.221 +65 -69 src/sys/ufs/ffs/ffs_softdep.c >> 1.339 +4 -3 src/sys/ufs/ffs/ffs_vfsops.c >> 1.181 +14 -12 src/sys/ufs/ffs/ffs_vnops.c > > -- > - Alfred Perlstein >