hammer2 - freemap part 1 - initial block allocator and media support
authorMatthew Dillon <dillon@apollo.backplane.com>
Fri, 17 May 2013 21:48:59 +0000 (14:48 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Fri, 17 May 2013 21:48:59 +0000 (14:48 -0700)
commit1a7cfe5ae3c897f704a358fd3e556a55e430dcb1
tree88b5586906c76d582cbb4bb6ab2eaa633a2799e8
parentf1e3af6c0d9fb009456c1ad7a10c323acbf7022f
hammer2 - freemap part 1 - initial block allocator and media support

* Freemap document (FREEMAP in this directory)

* temporarily turn off clustering until the freemap gets that capability
  (mixed buffer sizes can be adjacent atm).

* Remove the freemap_blockref[1] from the volume header and replace it
  with a blockset array (8 blockrefs).

* Implement dynamic creation of freemap nodes and leafs on an as-needed
  basis using the normal indirect block creation code.  Most of the standard
  file handling code is reused for the freemap support.

* Major cleanup of hammer2_chain.c, the duplication code, the indirect
  block creation and handling, and the chain->flag handling.
13 files changed:
sys/vfs/hammer2/DESIGN
sys/vfs/hammer2/FREEMAP [new file with mode: 0644]
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_ioctl.c
sys/vfs/hammer2/hammer2_subr.c
sys/vfs/hammer2/hammer2_vfsops.c
sys/vfs/hammer2/hammer2_vnops.c