ITS#7515 Nested MDB txns: Inherit txn flags.
authorHallvard Furuseth <hallvard@openldap.org>
Thu, 13 Jun 2013 06:58:25 +0000 (08:58 +0200)
committerHallvard Furuseth <hallvard@openldap.org>
Thu, 13 Jun 2013 06:58:25 +0000 (08:58 +0200)
Committing a nested txn lost the MDB_TXN_DIRTY flag
in the parent, unless the child had set it too.

libraries/liblmdb/mdb.c

index 97926d9e145b5930f4fdbcc25ef887cb927fe73e..df2e888c61475d64159c53ee31afb318a6ed5c87 100644 (file)
@@ -1971,6 +1971,7 @@ mdb_txn_begin(MDB_env *env, MDB_txn *parent, unsigned int flags, MDB_txn **ret)
                parent->mt_child = txn;
                txn->mt_parent = parent;
                txn->mt_numdbs = parent->mt_numdbs;
+               txn->mt_flags = parent->mt_flags;
                txn->mt_dbxs = parent->mt_dbxs;
                memcpy(txn->mt_dbs, parent->mt_dbs, txn->mt_numdbs * sizeof(MDB_db));
                /* Copy parent's mt_dbflags, but clear DB_NEW */