ITS#4254 fix lock ordering

This commit is contained in:
Howard Chu 2005-12-08 23:45:47 +00:00
parent fdbcfbe598
commit 3e062a3f35

View File

@ -438,12 +438,6 @@ hdb_cache_find_parent(
addlru = 0;
}
if ( addlru ) {
ldap_pvt_thread_mutex_lock( &bdb->bi_cache.lru_mutex );
LRU_ADD( &bdb->bi_cache, ein );
ldap_pvt_thread_mutex_unlock( &bdb->bi_cache.lru_mutex );
}
addlru = 1;
/* If this is the first time, save this node
* to be returned later.
@ -465,6 +459,13 @@ hdb_cache_find_parent(
bdb->bi_cache.c_leaves++;
ldap_pvt_thread_rdwr_wunlock( &bdb->bi_cache.c_rwlock );
if ( addlru ) {
ldap_pvt_thread_mutex_lock( &bdb->bi_cache.lru_mutex );
LRU_ADD( &bdb->bi_cache, ein );
ldap_pvt_thread_mutex_unlock( &bdb->bi_cache.lru_mutex );
}
addlru = 1;
/* Got the parent, link in and we're done. */
if ( ei2 ) {
bdb_cache_entryinfo_lock( ei2 );