git: hammer2 hammer2 - Implement variable-sized indirect blocks, clustered reads
Matthew Dillon
dillon at crater.dragonflybsd.org
Mon Mar 19 21:24:09 PDT 2012
commit 6ba3b984736974a60373ed1610426443c5be4266
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Mon Mar 19 18:34:45 2012 -0700
hammer2 - Implement variable-sized indirect blocks, clustered reads
* Implement 4K indirect blocks as well as 64K indirect blocks
* Do not flush the chains for VOP_FSYNC() calls issued from 'sync' or
from the syncer, only flush the chains when called from fsync().
This solves a fairly nasty repeated copy-on-write ops on the same block
in the topology.
* Issue appropriate cluster_read() calls instead of bread().
* Implement forward-looking bmap across multiple blocks instead of just one.
Summary of changes:
sys/vfs/hammer2/hammer2.h | 31 +++++--
sys/vfs/hammer2/hammer2_chain.c | 171 ++++++++++++++++++++++++++++--------
sys/vfs/hammer2/hammer2_disk.h | 16 ++--
sys/vfs/hammer2/hammer2_freemap.c | 55 ++++++------
sys/vfs/hammer2/hammer2_inode.c | 6 +-
sys/vfs/hammer2/hammer2_subr.c | 25 ++++++
sys/vfs/hammer2/hammer2_vnops.c | 124 ++++++++++++++++++++------
7 files changed, 314 insertions(+), 114 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/6ba3b984736974a60373ed1610426443c5be4266
--
DragonFly BSD source repository
More information about the Commits
mailing list