hammer2 - Add indirect node collapse code
authorMatthew Dillon <dillon@apollo.backplane.com>
Sun, 10 Sep 2017 17:03:09 +0000 (10:03 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sun, 10 Sep 2017 17:03:09 +0000 (10:03 -0700)
commit850d3f60f0a03e7a3f08357489acac749d6224ca
treead944657561ba63c4f3998658a64324eb19bfa0c
parent4e0d25fd335ded4e69323a5355504798a6723399
hammer2 - Add indirect node collapse code

* Move the contents of an indirect node into its parent when either
  becomes empty enough to accomodate the move.  This is done during
  the flush and incurs no extra overhead or I/O.

* This is not a rebalancing algorithm but it does do a pretty good
  job reducing degenerate indirect nodes in the topology.

* Note that I am not using bref->leaf_count yet.  This will be used
  in a later rebalancing algorithm.

* Fix minor bug in hammer2_chain_create_indirect() where a chain's
  bref was being tested without holding a lock on the chain.

* Remove misc debugging that we no longer need.
sys/vfs/hammer2/hammer2.h
sys/vfs/hammer2/hammer2_chain.c
sys/vfs/hammer2/hammer2_flush.c