cvs commit: src/sys/vfs/hammer hammer.h hammer_blockmap.c hammer_btree.c hammer_io.c hammer_mirror.c hammer_object.c hammer_ondisk.c hammer_vnops.c

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Jul 31 15:33:29 PDT 2008


dillon      2008/07/31 15:30:33 PDT

DragonFly src repository

  Modified files:
    sys/vfs/hammer       hammer.h hammer_blockmap.c hammer_btree.c 
                         hammer_io.c hammer_mirror.c 
                         hammer_object.c hammer_ondisk.c 
                         hammer_vnops.c 
  Log:
  HAMMER: Mirroring work
  
  * Fix an invalidation race that can be triggered by the mirroring or
    reblocking code.  The invalidation was being made before the direct IO
    completed rather then after.
  
  * Fix an invalidation race.  hammer_io_inval() was cleaning out any
    pre-existing buffer cache buffer aliases but was not cleaning out the
    VM backing store, resulting in CRC assertions (but no on-media corruption)
    by the mirroring code.
  
  * Change the bulk-record sequencing to avoid adding the record to
    the inode's record list until after the direct-io has been initiated.
  
  * Change the mirror_read code to generate PASS records for deleted records
    whos create_tid is out of bounds, so we do not have to transport the
    data for deleted data records.  This greatly reduces the mirror bandwidth
    needed to mirror deletions.
  
    The mirror_write code similarly will issue delete_tid updates as
    appropriate when presented with a PASS record.
  
  * Mirror targets no longer strip deleted records which had yet to be created
    on the target.  The record is now created so snapshot state is retained.
  
  Revision  Changes    Path
  1.125     +3 -0      src/sys/vfs/hammer/hammer.h
  1.27      +5 -1      src/sys/vfs/hammer/hammer_blockmap.c
  1.75      +4 -1      src/sys/vfs/hammer/hammer_btree.c
  1.52      +77 -36    src/sys/vfs/hammer/hammer_io.c
  1.17      +34 -23    src/sys/vfs/hammer/hammer_mirror.c
  1.93      +15 -35    src/sys/vfs/hammer/hammer_object.c
  1.74      +1 -1      src/sys/vfs/hammer/hammer_ondisk.c
  1.94      +0 -1      src/sys/vfs/hammer/hammer_vnops.c


http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer.h.diff?r1=1.124&r2=1.125&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_blockmap.c.diff?r1=1.26&r2=1.27&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_btree.c.diff?r1=1.74&r2=1.75&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_io.c.diff?r1=1.51&r2=1.52&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_mirror.c.diff?r1=1.16&r2=1.17&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_object.c.diff?r1=1.92&r2=1.93&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_ondisk.c.diff?r1=1.73&r2=1.74&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vnops.c.diff?r1=1.93&r2=1.94&f=u





More information about the Commits mailing list