mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-06 10:46:21 +08:00
parent
bd92b570a8
commit
85ae5011e7
@ -1107,17 +1107,18 @@ static void mdb_audit(MDB_txn *txn)
|
|||||||
mdb_cursor_init(&mc, txn, FREE_DBI, NULL);
|
mdb_cursor_init(&mc, txn, FREE_DBI, NULL);
|
||||||
while ((rc = mdb_cursor_get(&mc, &key, &data, MDB_NEXT)) == 0)
|
while ((rc = mdb_cursor_get(&mc, &key, &data, MDB_NEXT)) == 0)
|
||||||
freecount += *(MDB_ID *)data.mv_data;
|
freecount += *(MDB_ID *)data.mv_data;
|
||||||
freecount += txn->mt_dbs[0].md_branch_pages + txn->mt_dbs[0].md_leaf_pages +
|
|
||||||
txn->mt_dbs[0].md_overflow_pages;
|
|
||||||
|
|
||||||
count = 0;
|
count = 0;
|
||||||
for (i = 0; i<txn->mt_numdbs; i++) {
|
for (i = 0; i<txn->mt_numdbs; i++) {
|
||||||
|
MDB_xcursor mx, *mxp;
|
||||||
|
mxp = (txn->mt_dbs[i].md_flags & MDB_DUPSORT) ? &mx : NULL;
|
||||||
|
mdb_cursor_init(&mc, txn, i, mxp);
|
||||||
|
if (txn->mt_dbs[i].md_root == P_INVALID)
|
||||||
|
continue;
|
||||||
count += txn->mt_dbs[i].md_branch_pages +
|
count += txn->mt_dbs[i].md_branch_pages +
|
||||||
txn->mt_dbs[i].md_leaf_pages +
|
txn->mt_dbs[i].md_leaf_pages +
|
||||||
txn->mt_dbs[i].md_overflow_pages;
|
txn->mt_dbs[i].md_overflow_pages;
|
||||||
if (txn->mt_dbs[i].md_flags & MDB_DUPSORT) {
|
if (txn->mt_dbs[i].md_flags & MDB_DUPSORT) {
|
||||||
MDB_xcursor mx;
|
|
||||||
mdb_cursor_init(&mc, txn, i, &mx);
|
|
||||||
mdb_page_search(&mc, NULL, 0);
|
mdb_page_search(&mc, NULL, 0);
|
||||||
do {
|
do {
|
||||||
unsigned j;
|
unsigned j;
|
||||||
@ -1136,7 +1137,7 @@ static void mdb_audit(MDB_txn *txn)
|
|||||||
while (mdb_cursor_sibling(&mc, 1) == 0);
|
while (mdb_cursor_sibling(&mc, 1) == 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
assert(freecount + count + 2 >= txn->mt_next_pgno - 1);
|
assert(freecount + count + 2 /* metapages */ == txn->mt_next_pgno);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user