diff --git a/servers/slapd/back-bdb/search.c b/servers/slapd/back-bdb/search.c index a7525be1d8..12d7ea3eb6 100644 --- a/servers/slapd/back-bdb/search.c +++ b/servers/slapd/back-bdb/search.c @@ -850,6 +850,12 @@ fetch_entry_retry: if ( get_pagedresults(op) > SLAP_CONTROL_IGNORED ) { if ( rs->sr_nentries >= ((PagedResultsState *)op->o_pagedresults_state)->ps_size ) { +#ifdef SLAP_ZONE_ALLOC + slap_zn_runlock(bdb->bi_cache.c_zctx, e); +#endif + bdb_cache_return_entry_r( bdb->bi_dbenv, + &bdb->bi_cache, e, &lock ); + e = NULL; send_paged_response( op, rs, &lastid, tentries ); goto done; }