mdb_txn_commit(nested transaction) has more problems:
- If the commit fails, it may modify the parent txn anyway.
- The code to merge dirty_list into the parent is strange. I think it
assumes that the dirty pages are either dirty in the parent, or have
a higher page numbers than the parent's dirty pages parent. That can
be wrong if a new freelist entry was used, or a "multi-page page".
Branch mdb/tweaks2 in <http://folk.uio.no/hbf/OpenLDAP/openldap.git>
includes a suggested fix, but could use some review - and testing by
someone who actually uses nested txns.