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 ...

Alfred Perlstein alfred at freebsd.org
Sat Mar 22 15:42:53 PDT 2008


* 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?

>    - 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