hammer2 - Stabilize new I/O infrastructure and work on bulkfree
commit3148f6779fc754711b51c40131a915c9deb16741
authorMatthew Dillon <dillon@apollo.backplane.com>
Mon, 26 Jan 2015 23:48:03 +0000 (26 15:48 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Mon, 26 Jan 2015 23:48:03 +0000 (26 15:48 -0800)
treebdd93717865a18ef150b6b2f2b92cda8e14ef868
parent8ec5b2c920b2e0bb7332e15b9c3dc910b1d6284c
hammer2 - Stabilize new I/O infrastructure and work on bulkfree

* Stabilize the new asynchronous hammer_io infrastructure.

* Document the new simpler bulkfree scan algorithm.  The new algorithm
  scans meta-data in two passes, rebuilding the freemap in kernel memory.
  It then compares the map against the live media.

  The first pass transitions the freemap from (11 = allocated) to
  (10 = staged for deletion), the second pass transitions (10) either back
  to (11) if the block is found to not actually be freeable or to (00) if
  the block winds up being actually freeable.

  The two pass mechanism deals with any races and allows the scan to occur
  essentially unlocked,

* Start work on the bulkfree scan algorithm.
sys/vfs/hammer2/FREEMAP
sys/vfs/hammer2/Makefile
sys/vfs/hammer2/hammer2.h
sys/vfs/hammer2/hammer2_bulkscan.c [new file with mode: 0644]
sys/vfs/hammer2/hammer2_chain.c
sys/vfs/hammer2/hammer2_disk.h
sys/vfs/hammer2/hammer2_freemap.c
sys/vfs/hammer2/hammer2_io.c
sys/vfs/hammer2/hammer2_ioctl.c
sys/vfs/hammer2/hammer2_ioctl.h
sys/vfs/hammer2/hammer2_vnops.c