cvs commit: src/sys/emulation/linux/i386/linprocfs src/sys/kern src/sys/sys src/sys/vfs/coda src/sys/vfs/fdesc src/sys/vfs/gnu/ext2fs src/sys/vfs/hpfs src/sys/vfs/isofs/cd9660 src/sys/vfs/mfs src/sys/vfs/msdosfs src/sys/vfs/nfs src/sys/vfs/ntfs ...

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Aug 28 12:03:29 PDT 2004


dillon      2004/08/28 12:02:35 PDT

DragonFly src repository

  Modified files:
    sys/emulation/linux/i386/linprocfs linprocfs_subr.c 
    sys/kern             kern_lock.c vfs_default.c vfs_subr.c 
                         vfs_vopops.c 
    sys/sys              lock.h namecache.h vnode.h 
    sys/vfs/coda         cnode.h coda_vnops.c 
    sys/vfs/fdesc        fdesc_vnops.c 
    sys/vfs/gnu/ext2fs   ext2_vfsops.c 
    sys/vfs/hpfs         hpfs.h hpfs_vfsops.c hpfs_vnops.c 
    sys/vfs/isofs/cd9660 cd9660_node.c cd9660_node.h 
                         cd9660_vfsops.c 
    sys/vfs/mfs          mfs_vfsops.c 
    sys/vfs/msdosfs      denode.h msdosfs_denode.c msdosfs_vnops.c 
    sys/vfs/nfs          nfs_node.c nfs_vnops.c nfsnode.h 
    sys/vfs/ntfs         ntfs_inode.h ntfs_vfsops.c 
    sys/vfs/nullfs       null.h null_subr.c null_vnops.c 
    sys/vfs/nwfs         nwfs_node.c 
    sys/vfs/portal       portal_vfsops.c portal_vnops.c 
    sys/vfs/procfs       procfs_subr.c procfs_vfsops.c 
                         procfs_vnops.c 
    sys/vfs/smbfs        smbfs_node.c smbfs_node.h smbfs_vnops.c 
    sys/vfs/udf          udf_vnops.c 
    sys/vfs/ufs          ffs_vfsops.c inode.h ufs_extern.h 
                         ufs_ihash.c ufs_inode.c ufs_vnops.c 
    sys/vfs/umapfs       umap.h umap_subr.c umap_vnops.c 
    sys/vfs/union        union_subr.c 
    sys/vm               vm_swap.c 
  Log:
  VFS messaging/interfacing work stage 4/99.  This stage goes a long ways
  towards allowing us to move the vnode locking into a kernel layer.  It
  gets rid of a lot of cruft from FreeBSD-4.  FreeBSD-5 has done some of this
  stuff too (such as changing the default locking to stdlock from nolock),
  but DragonFly is going further.
  
  * Consolidate vnode locks into the vnode structure, add an embedded v_lock,
    and getting rid of both v_vnlock and v_data based head-of-structure locks.
  
  * Change the default vops to use a standard vnode lock rather then a fake
    non-lock.
  
  * Get rid of vop_nolock() and friends, we no longer support non-locking
    vnodes.
  
  * Get rid of vop_sharedlock(), we no longer support non standard shared-only
    locks (only NFS was using it and the mount-crossing lookup code should
    now prevent races to root from dead NFS volumes).
  
  * Integrate lock initialization into getnewvnode().  We do not yet
    incorporate automatically locking into getnewvnode().  getnewvnode()
    now has two additional arguments, lktimeout and lkflags, for lock
    structure initialization.
  
  * Change the sync vnode lock from nolock to stdlock.  This may require more
    tuning down the line.  Fix various sync_inactive() to properly unlock
    the lock as per the VOP API.
  
  * Properly flag the 'rename' vop operation regarding required tdvp and tvp
    unlocks (the flags are only used by nullfs).
  
  * Get rid of all inode-embedded vnode locks
  
  * Remove manual lockinit and use new getnewvnode() args instead.
    Lock the vnode prior to doing anything that might block in
    order to avoid synclist access before the vnode has been properly
    initialize.
  
  * Generally change inode hash insertion to also check
    for a hash collision and return failure if it occurs,
    rather then doing (often non-atomic) relookups and
    other checks.  These sorts of collisions can occur
    if a vnode is being destroyed at the same time a new
    vnode is being created from an inode.  A new vnode is
    not generally accessible, except by the sync code (from
    the mountlist) until it's underlying inode has been hashed
    so dealing with a hash collision should be as simple as
    throwing away the vnode with a vput().
  
  * Do not initialize a new vnode's v_data until after
    the associated inode has been successfully added to
    the hash, and make the xxx_inactive() and xxx_reclaim()
    code friendly towards vnodes with a NULL v_data.
  
  * NFS now uses standard locks rather then shared-only locks.
  
  * PROCFS now uses standard locks rather then non-locks, and PROCFS's
    lookup code now understands VOP lookup semantics.  PROCFS now uses
    a real hash table for its node search rather then a single singly-linked
    list (which should better scale to systems with thousands of processes).
  
  * NULLFS should now properly handle lookup() and rename() locks.  NULLFS's
    node handling code has been rewritten.  NULLFS's bypass code now understands
    vnode unlocks (rename case).
  
  * UFS no longer needs the ffs_inode_hash_lock hacks.  It now uses the new
    collision-on-hash-add methodology.   This will speed up UFS when operating
    on lots of small files (reported by David Rhodus).
  
  Revision  Changes    Path
  1.12      +2 -1      src/sys/emulation/linux/i386/linprocfs/linprocfs_subr.c
  1.11      +16 -6     src/sys/kern/kern_lock.c
  1.13      +17 -198   src/sys/kern/vfs_default.c
  1.38      +15 -10    src/sys/kern/vfs_subr.c
  1.4       +2 -1      src/sys/kern/vfs_vopops.c
  1.9       +2 -2      src/sys/sys/lock.h
  1.7       +21 -6     src/sys/sys/namecache.h
  1.21      +34 -18    src/sys/sys/vnode.h
  1.4       +0 -1      src/sys/vfs/coda/cnode.h
  1.19      +6 -8      src/sys/vfs/coda/coda_vnops.c
  1.14      +1 -1      src/sys/vfs/fdesc/fdesc_vnops.c
  1.19      +1 -2      src/sys/vfs/gnu/ext2fs/ext2_vfsops.c
  1.13      +0 -1      src/sys/vfs/hpfs/hpfs.h
  1.20      +2 -2      src/sys/vfs/hpfs/hpfs_vfsops.c
  1.17      +1 -1      src/sys/vfs/hpfs/hpfs_vnops.c
  1.11      +40 -30    src/sys/vfs/isofs/cd9660/cd9660_node.c
  1.5       +2 -3      src/sys/vfs/isofs/cd9660/cd9660_node.h
  1.20      +14 -8     src/sys/vfs/isofs/cd9660/cd9660_vfsops.c
  1.17      +1 -1      src/sys/vfs/mfs/mfs_vfsops.c
  1.8       +1 -3      src/sys/vfs/msdosfs/denode.h
  1.15      +80 -71    src/sys/vfs/msdosfs/msdosfs_denode.c
  1.18      +9 -6      src/sys/vfs/msdosfs/msdosfs_vnops.c
  1.13      +4 -4      src/sys/vfs/nfs/nfs_node.c
  1.28      +3 -3      src/sys/vfs/nfs/nfs_vnops.c
  1.12      +0 -1      src/sys/vfs/nfs/nfsnode.h
  1.5       +0 -4      src/sys/vfs/ntfs/ntfs_inode.h
  1.21      +3 -4      src/sys/vfs/ntfs/ntfs_vfsops.c
  1.6       +3 -5      src/sys/vfs/nullfs/null.h
  1.13      +144 -83   src/sys/vfs/nullfs/null_subr.c
  1.14      +188 -132  src/sys/vfs/nullfs/null_vnops.c
  1.14      +20 -19    src/sys/vfs/nwfs/nwfs_node.c
  1.11      +1 -1      src/sys/vfs/portal/portal_vfsops.c
  1.16      +2 -1      src/sys/vfs/portal/portal_vnops.c
  1.10      +70 -43    src/sys/vfs/procfs/procfs_subr.c
  1.8       +3 -1      src/sys/vfs/procfs/procfs_vfsops.c
  1.19      +38 -20    src/sys/vfs/procfs/procfs_vnops.c
  1.13      +2 -2      src/sys/vfs/smbfs/smbfs_node.c
  1.4       +0 -1      src/sys/vfs/smbfs/smbfs_node.h
  1.16      +1 -1      src/sys/vfs/smbfs/smbfs_vnops.c
  1.7       +3 -2      src/sys/vfs/udf/udf_vnops.c
  1.24      +17 -38    src/sys/vfs/ufs/ffs_vfsops.c
  1.8       +1 -2      src/sys/vfs/ufs/inode.h
  1.9       +1 -1      src/sys/vfs/ufs/ufs_extern.h
  1.13      +37 -19    src/sys/vfs/ufs/ufs_ihash.c
  1.9       +21 -21    src/sys/vfs/ufs/ufs_inode.c
  1.20      +1 -1      src/sys/vfs/ufs/ufs_vnops.c
  1.7       +8 -3      src/sys/vfs/umapfs/umap.h
  1.11      +31 -14    src/sys/vfs/umapfs/umap_subr.c
  1.11      +11 -8     src/sys/vfs/umapfs/umap_vnops.c
  1.15      +3 -6      src/sys/vfs/union/union_subr.c
  1.14      +1 -1      src/sys/vm/vm_swap.c


http://www.dragonflybsd.org/cvsweb/src/sys/emulation/linux/i386/linprocfs/linprocfs_subr.c.diff?r1=1.11&r2=1.12&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_lock.c.diff?r1=1.10&r2=1.11&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_default.c.diff?r1=1.12&r2=1.13&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_subr.c.diff?r1=1.37&r2=1.38&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_vopops.c.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/lock.h.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/namecache.h.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/vnode.h.diff?r1=1.20&r2=1.21&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/coda/cnode.h.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/coda/coda_vnops.c.diff?r1=1.18&r2=1.19&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/fdesc/fdesc_vnops.c.diff?r1=1.13&r2=1.14&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/gnu/ext2fs/ext2_vfsops.c.diff?r1=1.18&r2=1.19&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hpfs/hpfs.h.diff?r1=1.12&r2=1.13&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hpfs/hpfs_vfsops.c.diff?r1=1.19&r2=1.20&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hpfs/hpfs_vnops.c.diff?r1=1.16&r2=1.17&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/isofs/cd9660/cd9660_node.c.diff?r1=1.10&r2=1.11&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/isofs/cd9660/cd9660_node.h.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/isofs/cd9660/cd9660_vfsops.c.diff?r1=1.19&r2=1.20&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/mfs/mfs_vfsops.c.diff?r1=1.16&r2=1.17&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/msdosfs/denode.h.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/msdosfs/msdosfs_denode.c.diff?r1=1.14&r2=1.15&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/msdosfs/msdosfs_vnops.c.diff?r1=1.17&r2=1.18&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_node.c.diff?r1=1.12&r2=1.13&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_vnops.c.diff?r1=1.27&r2=1.28&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfsnode.h.diff?r1=1.11&r2=1.12&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ntfs/ntfs_inode.h.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ntfs/ntfs_vfsops.c.diff?r1=1.20&r2=1.21&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nullfs/null.h.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nullfs/null_subr.c.diff?r1=1.12&r2=1.13&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nullfs/null_vnops.c.diff?r1=1.13&r2=1.14&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nwfs/nwfs_node.c.diff?r1=1.13&r2=1.14&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/portal/portal_vfsops.c.diff?r1=1.10&r2=1.11&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/portal/portal_vnops.c.diff?r1=1.15&r2=1.16&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/procfs/procfs_subr.c.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/procfs/procfs_vfsops.c.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/procfs/procfs_vnops.c.diff?r1=1.18&r2=1.19&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/smbfs/smbfs_node.c.diff?r1=1.12&r2=1.13&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/smbfs/smbfs_node.h.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/smbfs/smbfs_vnops.c.diff?r1=1.15&r2=1.16&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/udf/udf_vnops.c.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ufs/ffs_vfsops.c.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ufs/inode.h.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ufs/ufs_extern.h.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ufs/ufs_ihash.c.diff?r1=1.12&r2=1.13&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ufs/ufs_inode.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ufs/ufs_vnops.c.diff?r1=1.19&r2=1.20&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/umapfs/umap.h.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/umapfs/umap_subr.c.diff?r1=1.10&r2=1.11&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/umapfs/umap_vnops.c.diff?r1=1.10&r2=1.11&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/union/union_subr.c.diff?r1=1.14&r2=1.15&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vm/vm_swap.c.diff?r1=1.13&r2=1.14&f=u





More information about the Commits mailing list