git: kernel - Cluster fixes + Enable clustering for HAMMER1

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Mar 22 16:51:10 PDT 2012


commit 9de13b88006e48f96c997b0ed454a1ec9971ecd7
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Thu Mar 22 16:45:55 2012 -0700

    kernel - Cluster fixes + Enable clustering for HAMMER1
    
    * Add cluster_awrite(), which replaces vfs_bio_awrite() and has the same
      basic semantics as bawrite().
    
    * Remove vfs_bio_awrite(), which had an odd API that required the buffer
      to be locked but not removed from its queues.
    
    * Make cluster operations work on disk device buffers as well as on
      regular files.
    
    * Add a blkflags argument to getcacheblk(), allowing GETBLK_NOWAIT to
      be passed to it.
    
    * Enhance cluster_wbuild() to support cluster_awrite() by having it take
      an optional bp to incorporate into the cluster.  The caller disposes of
      the bp by calling bawrite() if the cluster_wbuild() code could not use it.
    
    * Certain adjustments to cluster_write() and related code in checking against
      the file EOF to not break when variable block sizes are used.
    
    * Fix a bug in calls made to buf_checkwrite().  The caller is required to
      initiate the I/O if the function returns good (0).  HAMMER1 uses this
      save side effects and blows up if the I/O is then not initiated.
    
    * Enable clustering in HAMMER1 for both data and meta-data.

Summary of changes:
 sys/kern/vfs_bio.c            |  103 ++------------------------------
 sys/kern/vfs_cluster.c        |  131 +++++++++++++++++++++++++++++++----------
 sys/kern/vfs_subr.c           |   22 +------
 sys/sys/buf.h                 |    5 +-
 sys/vfs/hammer/hammer_io.c    |    3 +-
 sys/vfs/hammer/hammer_vnops.c |   26 ++++-----
 sys/vfs/tmpfs/tmpfs_vnops.c   |    5 +-
 7 files changed, 129 insertions(+), 166 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/9de13b88006e48f96c997b0ed454a1ec9971ecd7


-- 
DragonFly BSD source repository





More information about the Commits mailing list