cvs commit: src/usr.bin/fstat fstat.c src/sys/emulation/linux linux_misc.c linux_stats.c linux_util.c src/sys/kern imgact_elf.c init_main.c kern_acl.c kern_descrip.c kern_exec.c kern_jail.c kern_shutdown.c uipc_usrreq.c vfs_cache.c vfs_conf.c vfs_default.c ...

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Oct 26 22:03:37 PDT 2006


dillon      2006/10/26 21:56:34 PDT

DragonFly src repository

  Modified files:
    usr.bin/fstat        fstat.c 
    sys/emulation/linux  linux_misc.c linux_stats.c linux_util.c 
    sys/kern             imgact_elf.c init_main.c kern_acl.c 
                         kern_descrip.c kern_exec.c kern_jail.c 
                         kern_shutdown.c uipc_usrreq.c vfs_cache.c 
                         vfs_conf.c vfs_default.c vfs_jops.c 
                         vfs_journal.c vfs_nlookup.c 
                         vfs_syscalls.c vfs_vnops.c vfs_vopops.c 
    sys/sys              file.h filedesc.h jail.h kern_syscall.h 
                         mount.h namecache.h nlookup.h vfsops.h 
                         vnode.h 
    sys/vfs/gnu/ext2fs   ext2_vfsops.c 
    sys/vfs/hpfs         hpfs_vfsops.c 
    sys/vfs/isofs/cd9660 cd9660_rrip.c cd9660_vfsops.c 
    sys/vfs/msdosfs      msdosfs_vfsops.c 
    sys/vfs/nfs          nfs_serv.c nfs_subs.c nfs_syscalls.c 
                         nfs_vnops.c 
    sys/vfs/ntfs         ntfs_vfsops.c 
    sys/vfs/nullfs       null_vfsops.c null_vnops.c 
    sys/vfs/udf          udf_vfsops.c 
    sys/vfs/ufs          ffs_vfsops.c 
    sys/vfs/union        union_vfsops.c 
    sys/vm               vm_swap.c 
  Log:
  Major namecache work primarily to support NULLFS.
  
  * Move the nc_mount field out of the namecache{} record and use a new
    namecache handle structure called nchandle { mount, ncp } for all
    API accesses to the namecache.
  
  * Remove all mount point linkages from the namecache topology.  Each mount
    now has its own namecache topology rooted at the root of the mount point.
  
    Mount points are flagged in their underlying filesystem's namecache
    topology but instead of linking the mount into the topology, the flag
    simply triggers a mountlist scan to locate the mount.  ".." is handled
    the same way... when the root of a topology is encountered the scan
    can traverse to the underlying filesystem via a field stored in the
    mount structure.
  
  * Ref the mount structure based on the number of nchandle structures
    referencing it, and do not kfree() the mount structure during a forced
    unmount if refs remain.
  
  These changes have the following effects:
  
  * Traversal across mount points no longer require locking of any sort,
    preventing process blockages occuring in one mount from leaking across
    a mount point to another mount.
  
  * Aliased namespaces such as occurs with NULLFS no longer duplicate the
    namecache topology of the underlying filesystem.  Instead, a NULLFS
    mount simply shares the underlying topology (differentiating between
    it and the underlying topology by the fact that the name cache
    handles { mount, ncp } contain NULLFS's mount pointer.
  
    This saves an immense amount of memory and allows NULLFS to be used
    heavily within a system without creating any adverse impact on kernel
    memory or performance.
  
  * Since the namecache topology for a NULLFS mount is shared with the
    underyling mount, the namecache records are in fact the same records
    and thus full coherency between the NULLFS mount and the underlying
    filesystem is maintained by design.
  
  * Future efforts, such as a unionfs or shadow fs implementation, now
    have a mount structure to work with.  The new API is a lot more
    flexible then the old one.
  
  Revision  Changes    Path
  1.20      +13 -14    src/usr.bin/fstat/fstat.c
  1.31      +1 -1      src/sys/emulation/linux/linux_misc.c
  1.24      +2 -2      src/sys/emulation/linux/linux_stats.c
  1.14      +2 -2      src/sys/emulation/linux/linux_util.c
  1.43      +1 -1      src/sys/kern/imgact_elf.c
  1.65      +6 -6      src/sys/kern/init_main.c
  1.16      +4 -4      src/sys/kern/kern_acl.c
  1.75      +11 -13    src/sys/kern/kern_descrip.c
  1.48      +4 -4      src/sys/kern/kern_exec.c
  1.13      +4 -4      src/sys/kern/kern_jail.c
  1.40      +3 -6      src/sys/kern/kern_shutdown.c
  1.30      +3 -3      src/sys/kern/uipc_usrreq.c
  1.79      +440 -268  src/sys/kern/vfs_cache.c
  1.21      +1 -1      src/sys/kern/vfs_conf.c
  1.45      +63 -63    src/sys/kern/vfs_default.c
  1.32      +26 -26    src/sys/kern/vfs_jops.c
  1.29      +6 -8      src/sys/kern/vfs_journal.c
  1.20      +117 -139  src/sys/kern/vfs_nlookup.c
  1.107     +321 -283  src/sys/kern/vfs_syscalls.c
  1.49      +27 -31    src/sys/kern/vfs_vnops.c
  1.33      +29 -29    src/sys/kern/vfs_vopops.c
  1.24      +4 -1      src/sys/sys/file.h
  1.20      +6 -4      src/sys/sys/filedesc.h
  1.8       +6 -1      src/sys/sys/jail.h
  1.34      +2 -1      src/sys/sys/kern_syscall.h
  1.30      +7 -1      src/sys/sys/mount.h
  1.28      +38 -32    src/sys/sys/namecache.h
  1.5       +13 -11    src/sys/sys/nlookup.h
  1.27      +43 -43    src/sys/sys/vfsops.h
  1.72      +3 -3      src/sys/sys/vnode.h
  1.51      +1 -1      src/sys/vfs/gnu/ext2fs/ext2_vfsops.c
  1.39      +1 -1      src/sys/vfs/hpfs/hpfs_vfsops.c
  1.12      +1 -1      src/sys/vfs/isofs/cd9660/cd9660_rrip.c
  1.42      +1 -1      src/sys/vfs/isofs/cd9660/cd9660_vfsops.c
  1.42      +1 -1      src/sys/vfs/msdosfs/msdosfs_vfsops.c
  1.41      +35 -35    src/sys/vfs/nfs/nfs_serv.c
  1.43      +13 -15    src/sys/vfs/nfs/nfs_subs.c
  1.27      +1 -1      src/sys/vfs/nfs/nfs_syscalls.c
  1.67      +14 -14    src/sys/vfs/nfs/nfs_vnops.c
  1.43      +1 -1      src/sys/vfs/ntfs/ntfs_vfsops.c
  1.29      +34 -12    src/sys/vfs/nullfs/null_vfsops.c
  1.28      +11 -11    src/sys/vfs/nullfs/null_vnops.c
  1.24      +1 -1      src/sys/vfs/udf/udf_vfsops.c
  1.51      +1 -1      src/sys/vfs/ufs/ffs_vfsops.c
  1.28      +1 -1      src/sys/vfs/union/union_vfsops.c
  1.31      +1 -1      src/sys/vm/vm_swap.c


http://www.dragonflybsd.org/cvsweb/src/usr.bin/fstat/fstat.c.diff?r1=1.19&r2=1.20&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/emulation/linux/linux_misc.c.diff?r1=1.30&r2=1.31&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/emulation/linux/linux_stats.c.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/emulation/linux/linux_util.c.diff?r1=1.13&r2=1.14&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/imgact_elf.c.diff?r1=1.42&r2=1.43&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/init_main.c.diff?r1=1.64&r2=1.65&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_acl.c.diff?r1=1.15&r2=1.16&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_descrip.c.diff?r1=1.74&r2=1.75&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_exec.c.diff?r1=1.47&r2=1.48&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_jail.c.diff?r1=1.12&r2=1.13&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_shutdown.c.diff?r1=1.39&r2=1.40&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/uipc_usrreq.c.diff?r1=1.29&r2=1.30&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_cache.c.diff?r1=1.78&r2=1.79&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_conf.c.diff?r1=1.20&r2=1.21&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_default.c.diff?r1=1.44&r2=1.45&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_jops.c.diff?r1=1.31&r2=1.32&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_journal.c.diff?r1=1.28&r2=1.29&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_nlookup.c.diff?r1=1.19&r2=1.20&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_syscalls.c.diff?r1=1.106&r2=1.107&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_vnops.c.diff?r1=1.48&r2=1.49&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_vopops.c.diff?r1=1.32&r2=1.33&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/file.h.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/filedesc.h.diff?r1=1.19&r2=1.20&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/jail.h.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/kern_syscall.h.diff?r1=1.33&r2=1.34&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/mount.h.diff?r1=1.29&r2=1.30&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/namecache.h.diff?r1=1.27&r2=1.28&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/nlookup.h.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/vfsops.h.diff?r1=1.26&r2=1.27&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/vnode.h.diff?r1=1.71&r2=1.72&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/gnu/ext2fs/ext2_vfsops.c.diff?r1=1.50&r2=1.51&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hpfs/hpfs_vfsops.c.diff?r1=1.38&r2=1.39&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/isofs/cd9660/cd9660_rrip.c.diff?r1=1.11&r2=1.12&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/isofs/cd9660/cd9660_vfsops.c.diff?r1=1.41&r2=1.42&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/msdosfs/msdosfs_vfsops.c.diff?r1=1.41&r2=1.42&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_serv.c.diff?r1=1.40&r2=1.41&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_subs.c.diff?r1=1.42&r2=1.43&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_syscalls.c.diff?r1=1.26&r2=1.27&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_vnops.c.diff?r1=1.66&r2=1.67&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ntfs/ntfs_vfsops.c.diff?r1=1.42&r2=1.43&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nullfs/null_vfsops.c.diff?r1=1.28&r2=1.29&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nullfs/null_vnops.c.diff?r1=1.27&r2=1.28&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/udf/udf_vfsops.c.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/ufs/ffs_vfsops.c.diff?r1=1.50&r2=1.51&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/union/union_vfsops.c.diff?r1=1.27&r2=1.28&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vm/vm_swap.c.diff?r1=1.30&r2=1.31&f=u





More information about the Commits mailing list