kernel - Fix degenerate cluster_write() cases
authorMatthew Dillon <dillon@apollo.backplane.com>
Mon, 30 Apr 2012 22:44:53 +0000 (15:44 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Wed, 2 May 2012 00:46:58 +0000 (17:46 -0700)
commitd350c3cdc841af223c7832ed1feb9d5ce0168c5b
tree0c8e4c0cc587e860bbeb1ce645dc83339349fd7d
parentb8aacf5e48a54b7cad5e86e49bac55d4440049be
kernel - Fix degenerate cluster_write() cases

* cluster_write() should bdwrite() as a fallback, not bawrite().

  Note that cluster_awrite() always bawrite()'s or equivalent.  The
  DragonFly API split the functions out, so cluster_write() can now
  almost always bdwrite() for the non-clustered case.

* Solves some serious performance and real-time disk space usage issues
  when HAMMER1 was updated to use the cluster calls.  The disk space
  would be recovered by the daily cleanup but the extra writes could
  end up being quite excessive, 25:1 unnecessary writes vs necessary
  writes.

Reported-by: multiple, testing by tuxillo
sys/kern/vfs_cluster.c