cvs commit: src/sys/vfs/hammer hammer.h hammer_blockmap.c hammer_btree.c hammer_flusher.c hammer_freemap.c hammer_inode.c hammer_io.c hammer_ioctl.c hammer_object.c hammer_ondisk.c hammer_reblock.c hammer_transaction.c hammer_undo.c ...

Matthew Dillon dillon at crater.dragonflybsd.org
Fri Apr 25 14:55:09 PDT 2008


dillon      2008/04/25 14:49:49 PDT

DragonFly src repository

  Modified files:
    sys/vfs/hammer       hammer.h hammer_blockmap.c hammer_btree.c 
                         hammer_flusher.c hammer_freemap.c 
                         hammer_inode.c hammer_io.c hammer_ioctl.c 
                         hammer_object.c hammer_ondisk.c 
                         hammer_reblock.c hammer_transaction.c 
                         hammer_undo.c hammer_vfsops.c 
                         hammer_vnops.c 
  Log:
  HAMMER 38C/Many: Undo/Synchronization and crash recovery
  
  * Classify buffers as meta, undo, or data buffers, and collect them
    into separate lists so they can be flushed in the proper order.
  
  * Make the META buffers and volume header flushed under HAMMERs direct
    control only, as part of the UNDO sequencing.
  
  * Major work on the flusher thread.  Flush the various buffer classes in
    the correct order (the synchronization points are not yet coded, however).
  
  * Update the volume header's UNDO fifo indices.
  
  * Add a ton of sanity checks on buffer modifications and narrow the size
    of some of the UNDO records.
  
  * Clean-up after loose IOs.  An IO can be loose when its ref count drops
    to zero and the kernel attempts to reclaim its bp.  We can't garbage
    collect the IO in the kernel bioops callback so we have to remember
    that the IO is now loose and do it later (in the flusher).
  
  * Temporarily comment out an allocator iterator feature which we cannot
    do right now because it may result in new data allocations overwriting
    old deletions which are still subject to UNDO.
  
  Revision  Changes    Path
  1.49      +51 -15    src/sys/vfs/hammer/hammer.h
  1.8       +17 -0     src/sys/vfs/hammer/hammer_blockmap.c
  1.37      +27 -0     src/sys/vfs/hammer/hammer_btree.c
  1.3       +88 -138   src/sys/vfs/hammer/hammer_flusher.c
  1.6       +7 -0      src/sys/vfs/hammer/hammer_freemap.c
  1.37      +9 -2      src/sys/vfs/hammer/hammer_inode.c
  1.26      +220 -95   src/sys/vfs/hammer/hammer_io.c
  1.9       +9 -3      src/sys/vfs/hammer/hammer_ioctl.c
  1.42      +16 -2     src/sys/vfs/hammer/hammer_object.c
  1.38      +62 -35    src/sys/vfs/hammer/hammer_ondisk.c
  1.7       +17 -5     src/sys/vfs/hammer/hammer_reblock.c
  1.13      +1 -0      src/sys/vfs/hammer/hammer_transaction.c
  1.5       +3 -1      src/sys/vfs/hammer/hammer_undo.c
  1.27      +7 -4      src/sys/vfs/hammer/hammer_vfsops.c
  1.39      +1 -3      src/sys/vfs/hammer/hammer_vnops.c


http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer.h.diff?r1=1.48&r2=1.49&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_blockmap.c.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_btree.c.diff?r1=1.36&r2=1.37&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_flusher.c.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_freemap.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_inode.c.diff?r1=1.36&r2=1.37&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_io.c.diff?r1=1.25&r2=1.26&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_ioctl.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_object.c.diff?r1=1.41&r2=1.42&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_ondisk.c.diff?r1=1.37&r2=1.38&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_reblock.c.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_transaction.c.diff?r1=1.12&r2=1.13&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_undo.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vfsops.c.diff?r1=1.26&r2=1.27&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vnops.c.diff?r1=1.38&r2=1.39&f=u





More information about the Commits mailing list