ITS#8315 fix ovpage_free

Keep dirty_room sync'd with dirty_list
mdb.RE/0.9
Howard Chu 9 years ago
parent 2fb8219aa3
commit 1edb0e3a42
  1. 2
      libraries/liblmdb/mdb.c

@ -5449,6 +5449,7 @@ mdb_ovpage_free(MDB_cursor *mc, MDB_page *mp)
return MDB_CORRUPTED; return MDB_CORRUPTED;
} }
} }
txn->mt_dirty_room++;
if (!(env->me_flags & MDB_WRITEMAP)) if (!(env->me_flags & MDB_WRITEMAP))
mdb_dpage_free(env, mp); mdb_dpage_free(env, mp);
release: release:
@ -6583,6 +6584,7 @@ current:
return ENOMEM; return ENOMEM;
id2.mid = pg; id2.mid = pg;
id2.mptr = np; id2.mptr = np;
/* Note - this page is already counted in parent's dirty_room */
rc2 = mdb_mid2l_insert(mc->mc_txn->mt_u.dirty_list, &id2); rc2 = mdb_mid2l_insert(mc->mc_txn->mt_u.dirty_list, &id2);
mdb_cassert(mc, rc2 == 0); mdb_cassert(mc, rc2 == 0);
if (!(flags & MDB_RESERVE)) { if (!(flags & MDB_RESERVE)) {

Loading…
Cancel
Save