]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-bdb/dn2id.c
More for prev commit: delete bdb_cache_info(), must use cache_find_id().
[openldap] / servers / slapd / back-bdb / dn2id.c
index c09885303bd68d7faefbd865649b70b440622036..24c82666768fb3b5b23f380a387b77a05f85ef0f 100644 (file)
@@ -1152,11 +1152,15 @@ gotit:
                                        cx->id != NOID;
                                        cx->id = bdb_idl_next( save, &idcurs )) {
                                        EntryInfo *ei2;
-                                       ei2 = cx->ei = bdb_cache_find_info( cx->bdb, cx->id );
+                                       cx->ei = NULL;
+                                       if ( bdb_cache_find_id( cx->op, cx->txn, cx->id, &cx->ei,
+                                               ID_NOENTRY, NULL ))
+                                               continue;
                                        if ( !cx->ei ||
                                                ( cx->ei->bei_state & CACHE_ENTRY_NO_KIDS ))
                                                continue;
 
+                                       ei2 = cx->ei;
                                        BDB_ID2DISK( cx->id, &cx->nid );
                                        hdb_dn2idl_internal( cx );
                                        if ( !BDB_IDL_IS_ZERO( cx->tmp ))
@@ -1164,7 +1168,6 @@ gotit:
                                        bdb_cache_entryinfo_lock( ei2 );
                                        ei2->bei_finders--;
                                        bdb_cache_entryinfo_unlock( ei2 );
-
                                }
                                cx->depth--;
                                cx->op->o_tmpfree( save, cx->op->o_tmpmemctx );