mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-30 13:30:57 +08:00
ITS#7789 Fix resize vs MDB_NOMETASYNC, and a comment.
This commit is contained in:
parent
bda6a60ad4
commit
02285aca58
@ -411,7 +411,7 @@ typedef enum MDB_cursor_op {
|
||||
#define MDB_CURSOR_FULL (-30787)
|
||||
/** Page has not enough space - internal error */
|
||||
#define MDB_PAGE_FULL (-30786)
|
||||
/** Database contents grew beyond environment mapsize */
|
||||
/** Environment mapsize was changed by another process */
|
||||
#define MDB_MAP_RESIZED (-30785)
|
||||
/** MDB_INCOMPATIBLE: Operation and DB incompatible, or DB flags changed */
|
||||
#define MDB_INCOMPATIBLE (-30784)
|
||||
|
@ -3323,7 +3323,6 @@ mdb_txn_commit(MDB_txn *txn)
|
||||
#endif
|
||||
|
||||
if ((rc = mdb_page_flush(txn, 0)) ||
|
||||
(rc = mdb_env_sync(env, 0)) ||
|
||||
(rc = mdb_env_write_meta(txn)))
|
||||
goto fail;
|
||||
|
||||
@ -3480,7 +3479,7 @@ mdb_env_init_meta(MDB_env *env, MDB_meta *meta)
|
||||
static int
|
||||
mdb_env_write_meta(MDB_txn *txn)
|
||||
{
|
||||
MDB_env *env;
|
||||
MDB_env *env = txn->mt_env;
|
||||
MDB_meta meta, metab, *mp;
|
||||
off_t off;
|
||||
int rc, len, toggle;
|
||||
@ -3492,11 +3491,14 @@ mdb_env_write_meta(MDB_txn *txn)
|
||||
int r2;
|
||||
#endif
|
||||
|
||||
/* Sync data and previous metapage before writing a new metapage */
|
||||
if ((rc = mdb_env_sync(env, 0)) != MDB_SUCCESS)
|
||||
return rc;
|
||||
|
||||
toggle = txn->mt_txnid & 1;
|
||||
DPRINTF(("writing meta page %d for root page %"Z"u",
|
||||
toggle, txn->mt_dbs[MAIN_DBI].md_root));
|
||||
|
||||
env = txn->mt_env;
|
||||
mp = env->me_metas[toggle];
|
||||
|
||||
if (env->me_flags & MDB_WRITEMAP) {
|
||||
|
Loading…
Reference in New Issue
Block a user