hammer2 - Refactor flush mechanics
authorMatthew Dillon <dillon@apollo.backplane.com>
Wed, 19 Feb 2014 07:20:34 +0000 (23:20 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Tue, 25 Feb 2014 22:48:11 +0000 (14:48 -0800)
commit8138a154be31c3db1d8bd046ca7b003a6c79c01c
treeb378ae5a1ba21bca78260e2602686d20483d564a
parente26f83da5f747f88dbb3ae935cc417542e7dd81a
hammer2 - Refactor flush mechanics

* Greatly simplify and reduce special cases in the flush code

* Remove the multi-layer rbtree and replace with two discrete rbtree's
  (rbtree and dbtree) representing the live state and one linked list (dbq)
  representing set-aside deleted chains that are not part of the live state.

* Cleanup some debugging junk, add more debugging junk.

* Separate flushing state flags and TIDs into their own fields instead of
  trying to use the live state flags and bref TIDs.

* Simplify transaction TID tracking.
22 files changed:
sys/vfs/hammer2/donew [deleted file]
sys/vfs/hammer2/donew2 [deleted file]
sys/vfs/hammer2/dossd [deleted file]
sys/vfs/hammer2/dossd2 [deleted file]
sys/vfs/hammer2/dotest [deleted file]
sys/vfs/hammer2/hammer2.h
sys/vfs/hammer2/hammer2_ccms.c
sys/vfs/hammer2/hammer2_ccms.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_io.c
sys/vfs/hammer2/hammer2_ioctl.c
sys/vfs/hammer2/hammer2_ioctl.h
sys/vfs/hammer2/hammer2_mount.h
sys/vfs/hammer2/hammer2_msgops.c
sys/vfs/hammer2/hammer2_subr.c
sys/vfs/hammer2/hammer2_vfsops.c
sys/vfs/hammer2/hammer2_vnops.c
sys/vfs/hammer2/mkvntest [deleted file]