git: hammer2 hammer2 - hardlink stabilization (3), data and inode count propagation.

Matthew Dillon dillon at
Thu May 17 18:46:02 PDT 2012

commit 28ee5f14407fca9773ee7e53aa44bac278cac900
Author: Matthew Dillon <dillon at>
Date:   Thu May 17 18:41:51 2012 -0700

    hammer2 - hardlink stabilization (3), data and inode count propagation.
    * Files with cached chains have to be flushed before they can be copied
      to the hardlink target, because the original inode will become a
      OBJTYPE_HARDLINK pointer which isn't allowed to have any sub-chains
      under the inode.
    * We also need to flush for the upcoming snapshot function to work properly
      or dirty in-memory data will not show up in the snapshot.
    * Propagate the inode and byte use count up the chain.  Tie the inode count
      into df's inode count (per-PFS).  The byte count and quota fields are not
      yet tied in.
    * Adjust stat[v]fs() to return filesystem space useage using the allocation
      iterator for now, to aid debugging.
    * Adjust the allocation iterator to skip reserved areas at the beginning of
      each 2GB storage zone.

Summary of changes:
 sys/vfs/hammer2/hammer2.h         |   15 +++++-
 sys/vfs/hammer2/hammer2_chain.c   |   94 ++++++++++++++++++++++++++++++-------
 sys/vfs/hammer2/hammer2_freemap.c |    6 ++
 sys/vfs/hammer2/hammer2_inode.c   |   31 +++++++++++-
 sys/vfs/hammer2/hammer2_vfsops.c  |   26 +++++++++--
 sys/vfs/hammer2/hammer2_vnops.c   |   13 ++++-
 6 files changed, 157 insertions(+), 28 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list