diff --git a/libraries/libmdb/mdb.c b/libraries/libmdb/mdb.c index 07ecf99eba2c40c5c6dfe350804cc2213e3beec7..cd2ad9a5103e05224dbb78bd4707cec592381247 100644 --- a/libraries/libmdb/mdb.c +++ b/libraries/libmdb/mdb.c @@ -3155,6 +3155,7 @@ mdb_env_open(MDB_env *env, const char *path, unsigned int flags, mode_t mode) sprintf(dpath, "%s" DATANAME, path); } + flags |= env->me_flags; /* silently ignore WRITEMAP if we're only getting read access */ if (F_ISSET(flags, MDB_RDONLY|MDB_WRITEMAP)) flags ^= MDB_WRITEMAP; diff --git a/libraries/libmdb/mdb.h b/libraries/libmdb/mdb.h index 1735fbd375605764ae56019792222191892d49b7..d78868cb08a8cae9c3febbf156fdb6607e2abd8c 100644 --- a/libraries/libmdb/mdb.h +++ b/libraries/libmdb/mdb.h @@ -401,6 +401,7 @@ int mdb_env_create(MDB_env **env); * @param[in] flags Special options for this environment. This parameter * must be set to 0 or by bitwise OR'ing together one or more of the * values described here. + * Flags set by mdb_env_set_flags() are also used. * <ul> * <li>#MDB_FIXEDMAP * use a fixed address for the mmap region. This flag must be specified @@ -501,7 +502,7 @@ void mdb_env_close(MDB_env *env); /** @brief Set environment flags. * - * This may be used to set some flags that weren't already set during + * This may be used to set some flags in addition to those from * #mdb_env_open(), or to unset these flags. * @param[in] env An environment handle returned by #mdb_env_create() * @param[in] flags The flags to change, bitwise OR'ed together