hammer2 - Stabilization
* Key test in hammer2_chain_lookup() against DELETED chains no longer
special-caes a FREEMAP_NODE when trying to find the covering parent
chain for the range.
* hammer2_chain_create_indirect() now re-tests that chain->parent still
matches parent after obtaining the locked chain. There shouldn't be
a race here, but check anyway.
* Do not try to delete empty indirect nodes in the flush code unless
the chain's sub-tree is also empty. Fixes a possible race condition
on an indirect chain vs the kernel writing buffer cache buffers out.
I was also concerned about indirect chains in the INITIAL state tripping
up the test.
* re-test inode flags after inode lock prior to calling
hammer2_inode_chain_sync() as a simple optimization.