git: DragonFly_RELEASE_3_0 kernel - Cluster fixes + Enable clustering for HAMMER1

Matthew Dillon dillon at
Thu Mar 29 18:32:40 PDT 2012

commit 9d4e78c77684f1de021eb8ae17767c210205c3c3
Author: Matthew Dillon <dillon at>
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(-)

DragonFly BSD source repository

More information about the Commits mailing list