git: hammer2 hammer2 - create new branch, sync working trees from dillon & vsrinivas

Matthew Dillon dillon at
Wed Feb 8 16:00:15 PST 2012

commit 703720e4d599857d052f0a65f2840224ce36ec5a
Author: Matthew Dillon <dillon at>
Date:   Wed Feb 8 15:50:01 2012 -0800

    hammer2 - create new branch, sync working trees from dillon & vsrinivas
    * hammer2 branch in main repo created.  This branch will loosely track
      master with the additional hammer2 bits added.  Any changes that have to
      be made to non-hammer2 bits will be done in master and merged into this
      branch instead of the other way around.
    * Merge dillon's and vsrinivas's work, placing the files in the appropriate
      places in the source tree.
    * Initial whitespace cleanup so git doesn't complain
    * Major adjustments to hammer2_disk.h taking into account all discussions
      between dillon and vsrinivas to date relative to the original design.
      (1) The media blockref was expanded from 32 to 64 bytes in order to
          accomodate up to a 192 bit cryptographic hash.
      (2) The new blockref will also support multiple crc/hash/check algorithms.
      (3) The new blockref will also support multiple block compression algorithms.
      (4) The new blockref supports a full 64-bit key as well as a key mask,
          and an explicit type field instead of overloading the functionality
          of data_off's 6-bit physical storage size radix.
      (5) The fully associative blockset was reduced from 16 to 8 blockref
      (6) Support for multiple copies is possible within a fully associative
          blockset (also needed new fields in the new blockref).
      (7) The media volume structure has been fleshed out to support the new
      (8) The volume structure now also contains fields for configuring device
          paths for up to 8 copies, a fully associative blockset pointint to
          the root inode, and multiple sub-block crcs.

Summary of changes:
 lib/libstand/hammer2.c             |  143 +++
 sbin/mount_hammer2/Makefile        |    7 +
 sbin/mount_hammer2/mount_hammer2.c |   71 ++
 sys/vfs/hammer2/Makefile           |    9 +
 sys/vfs/hammer2/hammer2.h          |  689 ++++++++++++
 sys/vfs/hammer2/hammer2_disk.h     |  682 ++++++++++++
 sys/vfs/hammer2/hammer2_icrc.c     |  147 +++
 sys/vfs/hammer2/hammer2_mount.h    |   56 +
 sys/vfs/hammer2/hammer2_subr.c     | 1542 +++++++++++++++++++++++++++
 sys/vfs/hammer2/hammer2_vfsops.c   | 1008 ++++++++++++++++++
 sys/vfs/hammer2/hammer2_vnops.c    | 2012 ++++++++++++++++++++++++++++++++++++
 11 files changed, 6366 insertions(+), 0 deletions(-)
 create mode 100644 lib/libstand/hammer2.c
 create mode 100644 sbin/mount_hammer2/Makefile
 create mode 100644 sbin/mount_hammer2/mount_hammer2.c
 create mode 100644 sys/vfs/hammer2/Makefile
 create mode 100644 sys/vfs/hammer2/hammer2.h
 create mode 100644 sys/vfs/hammer2/hammer2_disk.h
 create mode 100644 sys/vfs/hammer2/hammer2_icrc.c
 create mode 100644 sys/vfs/hammer2/hammer2_mount.h
 create mode 100644 sys/vfs/hammer2/hammer2_subr.c
 create mode 100644 sys/vfs/hammer2/hammer2_vfsops.c
 create mode 100644 sys/vfs/hammer2/hammer2_vnops.c

DragonFly BSD source repository

More information about the Commits mailing list