HAMMER VFS - Implement async I/O for double-buffer strategy case
authorMatthew Dillon <dillon@apollo.backplane.com>
Sun, 10 Apr 2011 15:46:04 +0000 (08:46 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sun, 10 Apr 2011 15:46:04 +0000 (08:46 -0700)
commit9a98f3cc99cb6d581eee77b15079c1fefd607e8f
tree0de12b2d8c0dbb99042af55c8442add15136b609
parentc1c3e862be0312d5a93d8fe2fea22f0d7d6bab7f
HAMMER VFS - Implement async I/O for double-buffer strategy case

* When vfs.hammer.double_buffer is enabled the HAMMER strategy code
  was running synchronously.  This creates numerous problems including
  extra stalls when read-ahead is issued.

* Use the new breadcb() function to allow nominal double_buffer strategy
  operations to run asynchronously.  Essentially the original buffer and
  CRC is recorded in the device bio and the copyback is made in the
  callback.

* This improves performance vfs.hammer.double_buffer is enabled.
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_io.c
sys/vfs/hammer/hammer_ondisk.c
sys/vfs/hammer/hammer_vnops.c