git: hammer2 hammer2 - core file read and write paths

Matthew Dillon dillon at
Thu Feb 16 22:26:46 PST 2012

commit c667909f8b0c9cba8f5b860549058bf610820f83
Author: Matthew Dillon <dillon at>
Date:   Thu Feb 16 22:22:37 2012 -0800

    hammer2 - core file read and write paths
    * Get the core file create, read, and write paths working and tested for
      up to 8 blocks (we still don't have indirect blocks yet).
    * Add a flags field to the hammer2_chain_lookup() and hammer2_chain_next()
      to retrieve the element with a ref but without a lock, avoiding any I/O
      (used to obtain the physical block address in the strategy_read code).
    * Fix bugs in previously untested code paths related to reading and writing.
      Fixed a double allocation, improper handling of a degenerate case when
      creating a new record, missing b[q]relse()'s or bdwrite()'s, etc.
    * Fix a ripout in the hammer2_chain_flush()'s SPLAY_FOREACH() loop that
      led to a crash.
    * Add hammer2_vop_close()
    * Add hammer2_vop_ncreate()

Summary of changes:
 sys/vfs/hammer2/hammer2.h         |   16 ++++-
 sys/vfs/hammer2/hammer2_chain.c   |   82 ++++++++++++++++----------
 sys/vfs/hammer2/hammer2_freemap.c |   31 ++++++----
 sys/vfs/hammer2/hammer2_inode.c   |    2 +-
 sys/vfs/hammer2/hammer2_vfsops.c  |    8 ++-
 sys/vfs/hammer2/hammer2_vnops.c   |  120 ++++++++++++++++++++++++++++--------
 6 files changed, 183 insertions(+), 76 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list