DragonFly commits List (threaded) for 2008-04
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
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 ...
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
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]