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 ...
Jeff Roberson
jroberson at chesapeake.net
Sat Mar 22 17:30:43 PDT 2008
On Sat, 22 Mar 2008, Alfred Perlstein wrote:
> * Jeff Roberson <jeff at 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
>
More information about the cvs-src
mailing list