git: DragonFly_RELEASE_6_0 hammer2 - Fix growfs issue with multi-volume support + one other bug

Matthew Dillon dillon at
Mon Jun 14 14:14:14 PDT 2021

commit 74026e9915e7d79870ece57ad14a7f2c7afc60ae
Author: Matthew Dillon <dillon at>
Date:   Mon Jun 14 13:16:59 2021 -0700

    hammer2 - Fix growfs issue with multi-volume support + one other bug
    * A hammer2 filesystem versioned for multi-volume support checks
      voldata.total_size, but growfs was never modified to adjust
      the total_size field.
      Fix this by having growfs properly adjust the total_size field.
    * An older bug... growfs was not zeroing any new volume headers
      when extending the filesystem in such a way as additional volume
      headers are needed.
      Fix by properly zeroing these headers (mount will complain until
      hammer2 cycles through all four but that's ok).
    * Also fix an older bug, modifications to only the volume header could
      be flushed without bumping mirror_tid, causing confusion later
      on if the filesystem is unmounted and remounted.
      Fix this by having hammer2_voldata_modify() set mirror_tid in the
      vchain in the same manner that hammer2_chain_modify() does for
      a chain.  e.g.:
      hmp->vchain.bref.mirror_tid = hmp->voldata.mirror_tid + 1;

Summary of changes:
 sys/vfs/hammer2/hammer2_ioctl.c  | 26 ++++++++++++++++++++++----
 sys/vfs/hammer2/hammer2_vfsops.c |  9 +++++++++
 2 files changed, 31 insertions(+), 4 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list