diff --git a/servers/slapd/back-bdb/search.c b/servers/slapd/back-bdb/search.c index 9308731e32..cdbfcdb2d5 100644 --- a/servers/slapd/back-bdb/search.c +++ b/servers/slapd/back-bdb/search.c @@ -569,6 +569,10 @@ dn2entry_retry: #ifdef SLAP_ZONE_ALLOC slap_zn_runlock(bdb->bi_cache.c_zctx, e); #endif + if ( e != e_root ) { + bdb_cache_return_entry_r(bdb, e, &lock); + } + e = NULL; /* select candidates */ if ( op->oq_search.rs_scope == LDAP_SCOPE_BASE ) { @@ -591,11 +595,6 @@ cand_retry: } } - if ( e != e_root ) { - bdb_cache_return_entry_r(bdb, e, &lock); - } - e = NULL; - /* start cursor at beginning of candidates. */ cursor = 0;