cvs commit: src/sys/vfs/hammer hammer.h hammer_blockmap.c hammer_cursor.c hammer_cursor.h hammer_flusher.c hammer_freemap.c hammer_inode.c hammer_ioctl.c hammer_object.c hammer_reblock.c hammer_vnops.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Fri May 2 22:30:57 PDT 2008
dillon 2008/05/02 22:28:55 PDT
DragonFly src repository
Modified files:
sys/vfs/hammer hammer.h hammer_blockmap.c
hammer_cursor.c hammer_cursor.h
hammer_flusher.c hammer_freemap.c
hammer_inode.c hammer_ioctl.c
hammer_object.c hammer_reblock.c
hammer_vnops.c
Log:
HAMMER 40D/Many: Inode/link-count sequencer cleanup pass.
* Move the vfsync from the frontend to the backend. This allows the
frontend to passively move inodes to the backend without having to
actually start the flush, greatly improving performance.
* Use an inode lock to deal with directory entry syncing races between
the frontend and the backend. It isn't optimal but it's ok for now.
* Massively optimize the backend code by initializing a single cursor
for an inode and passing the cursor to procedures, instead of having
each procedure initialize its own cursor.
* Fix a sequencing issue with the backend. While building the flush
state for an inode another process could get in and initiate its own
flush, screwing up the flush group and creating confusion.
(hmp->flusher_lock)
* Don't lose track of HAMMER_FLUSH_SIGNAL flush requests. If we get
such a requet but have to flag a reflush, also flag that the reflush
is to be signaled (done immediately when the current flush is done).
* Remove shared inode locks from hammer_vnops.c. Their original purpose
no longer exists.
* Simplify the arguments passed to numerous procedures (hammer_ip_first(),
etc).
Revision Changes Path
1.57 +15 -13 src/sys/vfs/hammer/hammer.h
1.10 +7 -1 src/sys/vfs/hammer/hammer_blockmap.c
1.23 +63 -9 src/sys/vfs/hammer/hammer_cursor.c
1.17 +10 -5 src/sys/vfs/hammer/hammer_cursor.h
1.10 +2 -1 src/sys/vfs/hammer/hammer_flusher.c
1.8 +0 -3 src/sys/vfs/hammer/hammer_freemap.c
1.47 +197 -122 src/sys/vfs/hammer/hammer_inode.c
1.11 +2 -2 src/sys/vfs/hammer/hammer_ioctl.c
1.51 +200 -196 src/sys/vfs/hammer/hammer_object.c
1.9 +1 -1 src/sys/vfs/hammer/hammer_reblock.c
1.45 +52 -90 src/sys/vfs/hammer/hammer_vnops.c
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer.h.diff?r1=1.56&r2=1.57&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_blockmap.c.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_cursor.c.diff?r1=1.22&r2=1.23&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_cursor.h.diff?r1=1.16&r2=1.17&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_flusher.c.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_freemap.c.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_inode.c.diff?r1=1.46&r2=1.47&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_ioctl.c.diff?r1=1.10&r2=1.11&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_object.c.diff?r1=1.50&r2=1.51&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_reblock.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vnops.c.diff?r1=1.44&r2=1.45&f=u
More information about the Commits
mailing list