DragonFly commits List (threaded) for 2012-03
git: kernel - Cluster fixes + Enable clustering for HAMMER1
Author: Matthew Dillon <firstname.lastname@example.org>
Date: Thu Mar 22 16:45:55 2012 -0700
kernel - Cluster fixes + Enable clustering for HAMMER1
* Add cluster_awrite(), which replaces vfs_bio_awrite() and has the same
basic semantics as bawrite().
* Remove vfs_bio_awrite(), which had an odd API that required the buffer
to be locked but not removed from its queues.
* Make cluster operations work on disk device buffers as well as on
* Add a blkflags argument to getcacheblk(), allowing GETBLK_NOWAIT to
be passed to it.
* Enhance cluster_wbuild() to support cluster_awrite() by having it take
an optional bp to incorporate into the cluster. The caller disposes of
the bp by calling bawrite() if the cluster_wbuild() code could not use it.
* Certain adjustments to cluster_write() and related code in checking against
the file EOF to not break when variable block sizes are used.
* Fix a bug in calls made to buf_checkwrite(). The caller is required to
initiate the I/O if the function returns good (0). HAMMER1 uses this
save side effects and blows up if the I/O is then not initiated.
* Enable clustering in HAMMER1 for both data and meta-data.
Summary of changes:
sys/kern/vfs_bio.c | 103 ++------------------------------
sys/kern/vfs_cluster.c | 131 +++++++++++++++++++++++++++++++----------
sys/kern/vfs_subr.c | 22 +------
sys/sys/buf.h | 5 +-
sys/vfs/hammer/hammer_io.c | 3 +-
sys/vfs/hammer/hammer_vnops.c | 26 ++++-----
sys/vfs/tmpfs/tmpfs_vnops.c | 5 +-
7 files changed, 129 insertions(+), 166 deletions(-)
DragonFly BSD source repository