git: HAMMER VFS - Fix serious bug when downgrading (and later upgrading) a PFS

Matthew Dillon dillon at
Tue Jan 5 11:43:28 PST 2010

commit 1ee600fb7b4fd882b22f201fcbc67a0f632b21ac
Author: Matthew Dillon <dillon at>
Date:   Tue Jan 5 11:36:56 2010 -0800

    HAMMER VFS - Fix serious bug when downgrading (and later upgrading) a PFS
    * When downgrading a PFS master to a slave the sync-end-tid (in the
      pfs-status) is not updated.  This will cause the data to become
      Then, when upgrading back to a master the original stale sync-end-tid
      is used to rollback the PFS, effectively destroying its contents.
    * We now properly update sync-end-tid when downgrading a PFS.  This
      makes the data accessible in slave mode and prevents the rollback
      when re-upgrading the PFS from destroying any of the master's original
    * Why is a rollback used at all when upgrading you ask?  When a PFS is
      operating as a slave mirroring operations can be interrupted, leaving
      a lot of partially updated records.  Since sync-end-tid is not updated
      until the mirroring operation completes (when in slave mode), these
      partially mirrored records are not visible.
      However, if the slave is upgraded to a master any records from
      incomplete mirroring operations must be destroyed.  Hence the rollback
      during an upgrade is a necessary feature under normal operation.
    Reported-by: Thomas Nikolajsen

Summary of changes:
 sys/vfs/hammer/hammer_pfs.c |   17 +++++++++--------
 1 files changed, 9 insertions(+), 8 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list