cvs commit: src/sys/vfs/hammer hammer.h hammer_btree.c hammer_flusher.c hammer_inode.c hammer_object.c hammer_reblock.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Sun Jul 13 02:33:24 PDT 2008
dillon 2008/07/13 02:32:48 PDT
DragonFly src repository
Modified files:
sys/vfs/hammer hammer.h hammer_btree.c hammer_flusher.c
hammer_inode.c hammer_object.c
hammer_reblock.c
Log:
HAMMER 61E/Many: Stabilization, Performance
* PERFORMANCE: hammer_sync_inode() was generating a new transaction id
for each inode, causing hammer_btree_do_propagation() to have to
modify B-Tree nodes all the way to root on a per-file basis when
syncing a rm -rf.
Change the code to use the flusher's transaction id so all inodes
bundled into the same flush group use the same transaction id.
* BUG FIX: The reblocker was able to blow out the buffer cache with
dirty data buffers. Even though HAMMER allows these buffers to be
flushed to the disk at any time by the kernel, calls to bwillwrite()
are still needed to prevent a buffer cache deadlock.
Revision Changes Path
1.116 +1 -1 src/sys/vfs/hammer/hammer.h
1.71 +11 -0 src/sys/vfs/hammer/hammer_btree.c
1.39 +3 -1 src/sys/vfs/hammer/hammer_flusher.c
1.102 +15 -18 src/sys/vfs/hammer/hammer_inode.c
1.89 +8 -1 src/sys/vfs/hammer/hammer_object.c
1.31 +12 -0 src/sys/vfs/hammer/hammer_reblock.c
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer.h.diff?r1=1.115&r2=1.116&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_btree.c.diff?r1=1.70&r2=1.71&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_flusher.c.diff?r1=1.38&r2=1.39&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_inode.c.diff?r1=1.101&r2=1.102&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_object.c.diff?r1=1.88&r2=1.89&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_reblock.c.diff?r1=1.30&r2=1.31&f=u
More information about the Commits
mailing list