hammer2 - Change freemap segment delineation, other stuff
authorMatthew Dillon <dillon@apollo.backplane.com>
Mon, 5 Aug 2013 22:46:07 +0000 (15:46 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Mon, 5 Aug 2013 22:46:07 +0000 (15:46 -0700)
commit91abd41080e36691a2b192d816cd4bd90bcd7d12
treeffaecc6e4ba1beb40e62279d03ec4e8c103d1f97
parent89213fa5888510249bbaad63c45cd69b0bf8f2ac
hammer2 - Change freemap segment delineation, other stuff

* Change the freemap delineation to encode the BREF type as
  well as the radix, in order to avoid mixing data and meta-data
  types together in the same device buffer.

* Reorganize the freemap to remove one indirection level.  Reserve
  two bits per block instead of one.  Change bitmap granularity to 16KB
  but leave allocation granularity at 1KB.

* Fix hammer2_devblksize() to match hammer2_devblkradix().

* Add hammer2_chain_iterate(), a chain iteration with a
  callback.

* Fix issue when hammer2_chain_get() is called with HAMMER2_LOOKUP_ALWAYS.

* Start working on proper statistics rollups during flush (not complete).
sys/vfs/hammer2/FREEMAP
sys/vfs/hammer2/TODO
sys/vfs/hammer2/hammer2.h
sys/vfs/hammer2/hammer2_chain.c
sys/vfs/hammer2/hammer2_disk.h
sys/vfs/hammer2/hammer2_flush.c
sys/vfs/hammer2/hammer2_freemap.c
sys/vfs/hammer2/hammer2_inode.c
sys/vfs/hammer2/hammer2_vnops.c