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