HAMMER 37/Many: Add a flush helper thread, clean up some inconsistencies.
commit2d2a6eb2db706d32bbb19a576d2f205377200ee1
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)
tree23c8137c58257ecbcb035ea17ab2f05d7472d144
parent469701d05c3ef52a17e7c3df3795dd6b46cca8eb
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