hammer2 - Major restructuring, part 3/several
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 2 May 2013 20:06:28 +0000 (13:06 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 2 May 2013 20:06:28 +0000 (13:06 -0700)
commitea155208315d63a64e9e53552d15aae4321eefb4
treec997c945baaccd5efae0bc364e5028b45fbfa964
parent66e72101cc32272ae370b895ca3d9e3e99c5c3a8
hammer2 - Major restructuring, part 3/several

* Use hammer2_chain_duplicate() to move hardlinks to common parents.

* Adjust flush algorithms, particularly when it comes to figuring out
  when we can clear the MOVED bit on a chain.

* chain RBTREE sorts on delete_tid in addition to sorting on the key.
  Add ranged searches.

  The frontend no longer modifies indirect blocks.  Instead, chains in
  the RBTREE are used to placehold both insertions and deletions.

* Stabilization pass.  (still work to do on chain refs / unmount and
  optimizing the flush).
sys/vfs/hammer2/hammer2.h
sys/vfs/hammer2/hammer2_chain.c
sys/vfs/hammer2/hammer2_flush.c
sys/vfs/hammer2/hammer2_inode.c
sys/vfs/hammer2/hammer2_ioctl.c
sys/vfs/hammer2/hammer2_subr.c
sys/vfs/hammer2/hammer2_vnops.c