Date: Sat, 22 Mar 2008 14:31:51 -1000 (HST) From: Jeff Roberson <jroberson@chesapeake.net> To: Alfred Perlstein <alfred@freebsd.org> Cc: cvs-src@freebsd.org, Jeff Roberson <jeff@freebsd.org>, 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 ... Message-ID: <20080322142838.Y910@desktop> In-Reply-To: <20080322224253.GS67856@elvis.mu.org> References: <200803220915.m2M9FG8b051782@repoman.freebsd.org> <20080322224253.GS67856@elvis.mu.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 22 Mar 2008, Alfred Perlstein wrote: > * Jeff Roberson <jeff@FreeBSD.org> [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 >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080322142838.Y910>