cvs commit: src/sys/vfs/hammer hammer.h hammer_btree.c hammer_cursor.c hammer_inode.c hammer_io.c hammer_object.c hammer_ondisk.c hammer_recover.c hammer_spike.c hammer_transaction.c hammer_vnops.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Wed Jan 9 23:41:36 PST 2008
dillon 2008/01/09 23:41:03 PST
DragonFly src repository
Modified files:
sys/vfs/hammer hammer.h hammer_btree.c hammer_cursor.c
hammer_inode.c hammer_io.c
hammer_object.c hammer_ondisk.c
hammer_recover.c hammer_spike.c
hammer_transaction.c hammer_vnops.c
Log:
HAMMER 17/many: Refactor IO backend, clean up buffer cache deadlocks.
Rewrite HAMMER's IO backend, sans locking which will occur in another patch.
The new backend is far less confusing though I wouldn't exactly call it
simple.
The new backend keeps track of dependancies with a structure->structure
dependancy list, plus implements the special case of opening and closing
a cluster header. Buffers are synchronized first, then cluster headers,
then volume headers. The new backend also removes a number of potential
deadlocks.
Revision Changes Path
1.22 +20 -83 src/sys/vfs/hammer/hammer.h
1.17 +0 -22 src/sys/vfs/hammer/hammer_btree.c
1.11 +1 -4 src/sys/vfs/hammer/hammer_cursor.c
1.18 +0 -3 src/sys/vfs/hammer/hammer_inode.c
1.14 +335 -335 src/sys/vfs/hammer/hammer_io.c
1.18 +0 -8 src/sys/vfs/hammer/hammer_object.c
1.18 +174 -285 src/sys/vfs/hammer/hammer_ondisk.c
1.2 +0 -4 src/sys/vfs/hammer/hammer_recover.c
1.5 +0 -2 src/sys/vfs/hammer/hammer_spike.c
1.7 +0 -2 src/sys/vfs/hammer/hammer_transaction.c
1.17 +4 -3 src/sys/vfs/hammer/hammer_vnops.c
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer.h.diff?r1=1.21&r2=1.22&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_btree.c.diff?r1=1.16&r2=1.17&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_cursor.c.diff?r1=1.10&r2=1.11&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_inode.c.diff?r1=1.17&r2=1.18&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_io.c.diff?r1=1.13&r2=1.14&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_object.c.diff?r1=1.17&r2=1.18&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_ondisk.c.diff?r1=1.17&r2=1.18&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_recover.c.diff?r1=1.1&r2=1.2&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_spike.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_transaction.c.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vnops.c.diff?r1=1.16&r2=1.17&f=u
More information about the Commits
mailing list