cvs commit: src/sys/vfs/hammer hammer.h hammer_blockmap.c hammer_flusher.c hammer_inode.c hammer_io.c hammer_object.c hammer_ondisk.c hammer_undo.c hammer_vfsops.c

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Jul 17 17:20:18 PDT 2008


dillon      2008/07/17 17:19:53 PDT

DragonFly src repository

  Modified files:
    sys/vfs/hammer       hammer.h hammer_blockmap.c 
                         hammer_flusher.c hammer_inode.c 
                         hammer_io.c hammer_object.c 
                         hammer_ondisk.c hammer_undo.c 
                         hammer_vfsops.c 
  Log:
  HAMMER 63/Many: IO Error handling features
  
  This commit removes all the remaining Debugger() calls and KKASSERTs in the
  I/O error path.  Errors are now propagated up the call tree and properly
  reported.
  
  * Report I/O errors instead of asserting.
  
  * Read or Write errors in the flush path disable flushing and force the mount
    into read-only mode.  Modified buffers are left locked in memory until
    umount to provide a consistent snapshot of the state of the filesystem.
  
    You must umount and remount to recover the filesystem.  The filesystem
    will automatically rollback to the last valid flush upon remounting.
  
  * umount and umount -f are now able to unmount a HAMMER filesystem that has
    catastrophic write errors (e.g. pulling the USB cable on an external
    drive).
  
  Revision  Changes    Path
  1.120     +10 -4     src/sys/vfs/hammer/hammer.h
  1.26      +43 -15    src/sys/vfs/hammer/hammer_blockmap.c
  1.43      +50 -9     src/sys/vfs/hammer/hammer_flusher.c
  1.105     +103 -44   src/sys/vfs/hammer/hammer_inode.c
  1.51      +85 -29    src/sys/vfs/hammer/hammer_io.c
  1.91      +5 -4      src/sys/vfs/hammer/hammer_object.c
  1.71      +45 -8     src/sys/vfs/hammer/hammer_ondisk.c
  1.20      +4 -1      src/sys/vfs/hammer/hammer_undo.c
  1.65      +51 -18    src/sys/vfs/hammer/hammer_vfsops.c


http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer.h.diff?r1=1.119&r2=1.120&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_blockmap.c.diff?r1=1.25&r2=1.26&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_flusher.c.diff?r1=1.42&r2=1.43&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_inode.c.diff?r1=1.104&r2=1.105&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_io.c.diff?r1=1.50&r2=1.51&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_object.c.diff?r1=1.90&r2=1.91&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_ondisk.c.diff?r1=1.70&r2=1.71&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_undo.c.diff?r1=1.19&r2=1.20&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vfsops.c.diff?r1=1.64&r2=1.65&f=u





More information about the Commits mailing list