diff options
author | Rich Megginson <rmeggins@redhat.com> | 2008-10-09 17:40:14 +0000 |
---|---|---|
committer | Rich Megginson <rmeggins@redhat.com> | 2008-10-09 17:40:14 +0000 |
commit | c556522a1848bdbe50842a5be8300a2e80cf4d3e (patch) | |
tree | 0e0040c52acb9c871456efffa771e70927b5552d /ldap/servers/slapd/back-ldbm | |
parent | 4a045f0c371ae588c39cdfe1cbdb4ee048b0aeac (diff) | |
download | ds-c556522a1848bdbe50842a5be8300a2e80cf4d3e.tar.gz ds-c556522a1848bdbe50842a5be8300a2e80cf4d3e.tar.xz ds-c556522a1848bdbe50842a5be8300a2e80cf4d3e.zip |
Resolves: bug 454030, bug 463991
Bug Description: Need to address 64-bit compiler warnings - part 1
Reviewed by: nhosoi (Thanks!)
Fix Description: I inadvertantly committed fixes for 463991 along with fixes for 454030, and the fixes for 463991 broke the server. This commit makes the server work again.
Diffstat (limited to 'ldap/servers/slapd/back-ldbm')
-rw-r--r-- | ldap/servers/slapd/back-ldbm/back-ldbm.h | 10 | ||||
-rw-r--r-- | ldap/servers/slapd/back-ldbm/dblayer.c | 31 | ||||
-rw-r--r-- | ldap/servers/slapd/back-ldbm/perfctrs.c | 8 | ||||
-rw-r--r-- | ldap/servers/slapd/back-ldbm/proto-back-ldbm.h | 4 |
4 files changed, 36 insertions, 17 deletions
diff --git a/ldap/servers/slapd/back-ldbm/back-ldbm.h b/ldap/servers/slapd/back-ldbm/back-ldbm.h index f362f76c..c916f093 100644 --- a/ldap/servers/slapd/back-ldbm/back-ldbm.h +++ b/ldap/servers/slapd/back-ldbm/back-ldbm.h @@ -114,16 +114,6 @@ typedef unsigned short u_int16_t; #define MEGABYTE (1024 * 1024) #define GIGABYTE (1024 * MEGABYTE) -#define DB_USES_LOCKING(env) \ - (DB_INIT_LOCK & ((env)->get_open_flags((env), NULL))) -#define DB_USES_TRANSACTIONS(env) \ - (DB_INIT_TXN & ((env)->get_open_flags((env), NULL))) -#define DB_USES_MPOOL(env) \ - (DB_INIT_MPOOL & ((env)->get_open_flags((env), NULL))) -#define DB_USES_LOGGING(env) \ - (DB_INIT_LOG & ((env)->get_open_flags((env), NULL))) - - /* include NSPR header files */ #include "nspr.h" #include "plhash.h" diff --git a/ldap/servers/slapd/back-ldbm/dblayer.c b/ldap/servers/slapd/back-ldbm/dblayer.c index bc8b55f7..18c504d2 100644 --- a/ldap/servers/slapd/back-ldbm/dblayer.c +++ b/ldap/servers/slapd/back-ldbm/dblayer.c @@ -277,6 +277,31 @@ dblayer_bt_compare(DB *db, const DBT *dbt1, const DBT *dbt2) return slapi_berval_cmp(&bv1, &bv2); } +static int db_uses_feature(DB_ENV *db_env, u_int32_t flags) +{ + u_int32_t openflags = 0; + PR_ASSERT(db_env); + (*db_env->get_open_flags)(db_env, &openflags); + + return (flags & openflags); +} + +int dblayer_db_uses_locking(DB_ENV *db_env) { + return db_uses_feature(db_env, DB_INIT_LOCK); +} + +int dblayer_db_uses_transactions(DB_ENV *db_env) { + return db_uses_feature(db_env, DB_INIT_TXN); +} + +int dblayer_db_uses_mpool(DB_ENV *db_env) { + return db_uses_feature(db_env, DB_INIT_MPOOL); +} + +int dblayer_db_uses_logging(DB_ENV *db_env) { + return db_uses_feature(db_env, DB_INIT_LOG); +}; + /* this flag use if user remotely turned batching off */ #define FLUSH_REMOTEOFF -1 @@ -3456,7 +3481,7 @@ static int deadlock_threadmain(void *param) { if (priv->dblayer_enable_transactions) { - if (DB_USES_LOCKING(priv->dblayer_env->dblayer_DB_ENV)) { + if (dblayer_db_uses_locking(priv->dblayer_env->dblayer_DB_ENV)) { int aborted; if ((rval = LOCK_DETECT(priv->dblayer_env->dblayer_DB_ENV, 0, @@ -3626,7 +3651,7 @@ static int checkpoint_threadmain(void *param) checkpoint_interval) continue; - if (!DB_USES_TRANSACTIONS(priv->dblayer_env->dblayer_DB_ENV)) + if (!dblayer_db_uses_transactions(priv->dblayer_env->dblayer_DB_ENV)) continue; /* now checkpoint */ @@ -3784,7 +3809,7 @@ static int trickle_threadmain(void *param) DS_Sleep(interval); /* 622855: wait for other threads fully started */ if (priv->dblayer_enable_transactions) { - if ( DB_USES_MPOOL(priv->dblayer_env->dblayer_DB_ENV) && + if ( dblayer_db_uses_mpool(priv->dblayer_env->dblayer_DB_ENV) && (0 != priv->dblayer_trickle_percentage) ) { int pages_written = 0; diff --git a/ldap/servers/slapd/back-ldbm/perfctrs.c b/ldap/servers/slapd/back-ldbm/perfctrs.c index c6affe36..578c7528 100644 --- a/ldap/servers/slapd/back-ldbm/perfctrs.c +++ b/ldap/servers/slapd/back-ldbm/perfctrs.c @@ -296,7 +296,7 @@ void perfctrs_update(perfctrs_private *priv, DB_ENV *db_env) return; } /* Call libdb to get the various stats */ - if (DB_USES_LOGGING(db_env)) + if (dblayer_db_uses_logging(db_env)) { DB_LOG_STAT *logstat = NULL; ret = LOG_STAT(db_env,&logstat,0,malloc); @@ -307,7 +307,7 @@ void perfctrs_update(perfctrs_private *priv, DB_ENV *db_env) } free(logstat); } - if (DB_USES_TRANSACTIONS(db_env)) + if (dblayer_db_uses_transactions(db_env)) { DB_TXN_STAT *txnstat = NULL; ret = TXN_STAT(db_env, &txnstat, 0, malloc); @@ -320,7 +320,7 @@ void perfctrs_update(perfctrs_private *priv, DB_ENV *db_env) if (txnstat) free(txnstat); } - if (DB_USES_LOCKING(db_env)) + if (dblayer_db_uses_locking(db_env)) { DB_LOCK_STAT *lockstat = NULL; ret = LOCK_STAT(db_env,&lockstat,0,malloc); @@ -338,7 +338,7 @@ void perfctrs_update(perfctrs_private *priv, DB_ENV *db_env) } free(lockstat); } - if (DB_USES_MPOOL(db_env)) + if (dblayer_db_uses_mpool(db_env)) { DB_MPOOL_STAT *mpstat = NULL; ret = MEMP_STAT(db_env,&mpstat,NULL,0,malloc); diff --git a/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h b/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h index 34c76d50..51491e65 100644 --- a/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h +++ b/ldap/servers/slapd/back-ldbm/proto-back-ldbm.h @@ -166,6 +166,10 @@ char *dblayer_get_full_inst_dir(struct ldbminfo *li, ldbm_instance *inst, char *buf, int buflen); void autosize_import_cache(struct ldbminfo *li); +int dblayer_db_uses_locking(DB_ENV *db_env); +int dblayer_db_uses_transactions(DB_ENV *db_env); +int dblayer_db_uses_mpool(DB_ENV *db_env); +int dblayer_db_uses_logging(DB_ENV *db_env); /* * dn2entry.c |