git: hammer2 - bigger stabilization & performance pass

Matthew Dillon dillon at
Thu Dec 13 23:28:30 PST 2012

commit 3fc4c63df3c20dc74269c4bf2e4168ac119384a3
Author: Matthew Dillon <dillon at>
Date:   Thu Dec 13 23:23:21 2012 -0800

    hammer2 - bigger stabilization & performance pass
    * Fix additional namecache bogons that could result in a crash.
    * Fix volume header synchronization.  It was possible for the voldata
      structure to be modified after its crc had been calculated but before
      its write.  A mount after a crash would then refuse to use the volume
    * Each flush now iterates available volume header backups instead of
      just writing to block 0.  (The mount code selects the most recent
      valid volume header from available backups.  There is nothing special
      about the volume header in block 0).
    * Fix volume header flush staging, the fsync of the device buffers
      was not ensuring a complete flush before synchronizing the volume

Summary of changes:
 sys/vfs/hammer2/hammer2.h        |    2 +
 sys/vfs/hammer2/hammer2_chain.c  |   53 +++++++++++++++-----------------------
 sys/vfs/hammer2/hammer2_inode.c  |    8 +++++
 sys/vfs/hammer2/hammer2_vfsops.c |   42 +++++++++++++++++++++++-------
 sys/vfs/hammer2/hammer2_vnops.c  |    4 +-
 5 files changed, 65 insertions(+), 44 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list