git: hammer2 - pfsmount -> clustermount separation part 2

Matthew Dillon dillon at crater.dragonflybsd.org
Fri Jun 14 17:51:59 PDT 2013


commit a5913bdf3d73105a543cea7bc1b55768ddd56541
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Fri Jun 14 17:44:25 2013 -0700

    hammer2 - pfsmount -> clustermount separation part 2
    
    * Further separate the high-level VNOPS/inode (hammer2_pfsmount) layer
      from the lower level device (hammer2_mount, hammer2_chain) layer.
    
    * Remove hmp fields from hammer2_trans and hammer2_inode.
    
    * Add hammer2_cluster to the pfsmount as degenerate case for now.  This
      will be used to list all devices backing the PFS mount, pertaining to
      the copies mechanism.
    
    * Run all logical (file) buffer cache operations through the device buffer
      cache.  Remove previous direct-mapped shortcuts and disable BMAP for now.
    
      Basically the issue here is that with multiple devices backing a HAMMER2
      mount, the normal file buffer cache 'cached disk offset' operations used
      to shortcut I/O just won't work.  We can add the shortcut back in later
      for single-backing-device mounts but for now separate them out entirely
      and bcopy() between them.
    
    * This will also make it easier for the GSOC H2 file compression project.
    
    * Restore some of the lost performance by using the newly implemented
      cluster_readcb() buffer cache function.

Summary of changes:
 sys/sys/dmsg.h                    |   3 +-
 sys/vfs/hammer2/hammer2.h         |  56 ++++--
 sys/vfs/hammer2/hammer2_ccms.c    |   7 +
 sys/vfs/hammer2/hammer2_ccms.h    |   1 +
 sys/vfs/hammer2/hammer2_chain.c   | 172 ++++++++++++++--
 sys/vfs/hammer2/hammer2_flush.c   |  26 +--
 sys/vfs/hammer2/hammer2_freemap.c |  39 ++--
 sys/vfs/hammer2/hammer2_inode.c   |  26 +--
 sys/vfs/hammer2/hammer2_ioctl.c   |  39 ++--
 sys/vfs/hammer2/hammer2_vfsops.c  | 196 +++++++++---------
 sys/vfs/hammer2/hammer2_vnops.c   | 412 ++++++++++++++++++--------------------
 11 files changed, 557 insertions(+), 420 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/a5913bdf3d73105a543cea7bc1b55768ddd56541


-- 
DragonFly BSD source repository


More information about the Commits mailing list