HAMMER 37/Many: Add a flush helper thread, clean up some inconsistencies.
commit059819e3ed7c6f24ca4eda1cf9f8b1f9051977e8
authorMatthew Dillon <dillon@dragonflybsd.org>
Tue, 22 Apr 2008 19:00:15 +0000 (22 19:00 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Tue, 22 Apr 2008 19:00:15 +0000 (22 19:00 +0000)
treefd0b68fc4a56de31511a2c3cb5255609581320e4
parentf2d7fcf0efee6f61aa30ae0121427dda1b1c7a5e
HAMMER 37/Many: Add a flush helper thread, clean up some inconsistencies.

This patch generally cleans up transaction id inconsistencies betwen data
and meta-data by syncing the data and inode in a single transaction.

* Change the I/O path for write strategy calls.  Queue the BIO's to the
  flush helper thread instead of directly updating the media.

* We no longer try to sync individual buffers.  If the kernel wants to
  sync a dirty buffer, we sync the whole file to minimize inode updates.
sys/vfs/hammer/Makefile
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_disk.h
sys/vfs/hammer/hammer_flusher.c [new file with mode: 0644]
sys/vfs/hammer/hammer_inode.c
sys/vfs/hammer/hammer_io.c
sys/vfs/hammer/hammer_object.c
sys/vfs/hammer/hammer_undo.c
sys/vfs/hammer/hammer_vfsops.c
sys/vfs/hammer/hammer_vnops.c