mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-06 10:46:21 +08:00
ITS#4254 fix lock ordering
This commit is contained in:
parent
fdbcfbe598
commit
3e062a3f35
@ -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 );
|
||||
|
Loading…
Reference in New Issue
Block a user