From: Howard Chu Date: Fri, 10 Oct 2003 01:16:34 +0000 (+0000) Subject: ITS#2759 - Fix LRU manipulation X-Git-Tag: OPENLDAP_REL_ENG_2_1_23~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d1adb15ed80d7f12cb8443ec5953118d5828274d;p=thirdparty%2Fopenldap.git ITS#2759 - Fix LRU manipulation --- diff --git a/servers/slapd/back-bdb/cache.c b/servers/slapd/back-bdb/cache.c index ad5498c29e..6dfb93e16f 100644 --- a/servers/slapd/back-bdb/cache.c +++ b/servers/slapd/back-bdb/cache.c @@ -823,9 +823,6 @@ try_again: goto try_again; } - /* free cache read lock */ - ldap_pvt_thread_rdwr_runlock( &cache->c_rwlock ); - /* set lru mutex */ ldap_pvt_thread_mutex_lock( &cache->lru_mutex ); @@ -836,6 +833,9 @@ try_again: /* free lru mutex */ ldap_pvt_thread_mutex_unlock( &cache->lru_mutex ); + /* free cache read lock */ + ldap_pvt_thread_rdwr_runlock( &cache->c_rwlock ); + #ifdef NEW_LOGGING LDAP_LOG( CACHE, DETAIL1, "bdb_cache_find_entry_dn2id: (%s): %ld %d tries\n", @@ -955,8 +955,6 @@ try_again: /* Mark entry in-use */ BEI(ep)->bei_refcnt++; - /* free cache read lock */ - ldap_pvt_thread_rdwr_runlock( &cache->c_rwlock ); /* set lru mutex */ ldap_pvt_thread_mutex_lock( &cache->lru_mutex ); /* lru */ @@ -965,6 +963,8 @@ try_again: /* free lru mutex */ ldap_pvt_thread_mutex_unlock( &cache->lru_mutex ); + /* free cache read lock */ + ldap_pvt_thread_rdwr_runlock( &cache->c_rwlock ); #ifdef NEW_LOGGING LDAP_LOG( CACHE, DETAIL1,