cvs commit: src/sys/vfs/hammer hammer.h hammer_btree.c hammer_flusher.c hammer_freemap.c hammer_inode.c hammer_object.c hammer_reblock.c hammer_undo.c hammer_vfsops.c hammer_vnops.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Sat May 3 13:24:37 PDT 2008
dillon 2008/05/03 13:21:20 PDT
DragonFly src repository
Modified files:
sys/vfs/hammer hammer.h hammer_btree.c hammer_flusher.c
hammer_freemap.c hammer_inode.c
hammer_object.c hammer_reblock.c
hammer_undo.c hammer_vfsops.c
hammer_vnops.c
Log:
HAMMER 40F/Many: Inode/link-count sequencer cleanup pass, UNDO cache.
* Implement an UNDO cache. If we have already laid down an UNDO in the
current flush cycle we do not have to lay down another one for the same
address. This greatly reduces the number of UNDOs we generate during
a flush.
* Properly get the vnode in order to be able to issue vfsync()'s from the
backend. We may also have to acquire the vnode when doing an unload
check for a file deletion.
* Properly generate UNDO records for the volume header. During crash recovery
we have to UNDO the volume header along with any partially written
meta-data, because the volume header refers to the meta-data.
* Add another record type, GENERAL, representing inode or softlink records.
* Move the setting of HAMMER_INODE_WRITE_ALT to the backend, allowing
the kernel to flush buffers up to the point where the backend syncs
the inode.
Revision Changes Path
1.59 +36 -5 src/sys/vfs/hammer/hammer.h
1.41 +4 -6 src/sys/vfs/hammer/hammer_btree.c
1.11 +37 -21 src/sys/vfs/hammer/hammer_flusher.c
1.9 +5 -6 src/sys/vfs/hammer/hammer_freemap.c
1.49 +86 -50 src/sys/vfs/hammer/hammer_inode.c
1.53 +7 -1 src/sys/vfs/hammer/hammer_object.c
1.10 +2 -3 src/sys/vfs/hammer/hammer_reblock.c
1.10 +79 -0 src/sys/vfs/hammer/hammer_undo.c
1.32 +7 -2 src/sys/vfs/hammer/hammer_vfsops.c
1.46 +9 -7 src/sys/vfs/hammer/hammer_vnops.c
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer.h.diff?r1=1.58&r2=1.59&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_btree.c.diff?r1=1.40&r2=1.41&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_flusher.c.diff?r1=1.10&r2=1.11&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_freemap.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_inode.c.diff?r1=1.48&r2=1.49&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_object.c.diff?r1=1.52&r2=1.53&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_reblock.c.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_undo.c.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vfsops.c.diff?r1=1.31&r2=1.32&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vnops.c.diff?r1=1.45&r2=1.46&f=u
More information about the Commits
mailing list