From e8a2ac62cac8c5afce13a2b01a19c1d1496470bb Mon Sep 17 00:00:00 2001
From: Quanah Gibson-Mount <quanah@openldap.org>
Date: Wed, 18 Mar 2009 18:38:41 +0000
Subject: [PATCH] More for ITS#5860

---
 servers/slapd/back-bdb/cache.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/servers/slapd/back-bdb/cache.c b/servers/slapd/back-bdb/cache.c
index 260623cfa8..66071dccc7 100644
--- a/servers/slapd/back-bdb/cache.c
+++ b/servers/slapd/back-bdb/cache.c
@@ -674,8 +674,12 @@ bdb_cache_lru_purge( struct bdb_info *bdb )
 	else
 		eimax = bdb->bi_cache.c_eimax;
 
-	if ( bdb->bi_cache.c_cursize > bdb->bi_cache.c_maxsize )
+	efree = bdb->bi_cache.c_cursize - bdb->bi_cache.c_maxsize;
+	if ( efree < 1 )
+		efree = 0;
+	else if (efree < bdb->bi_cache.c_minfree )
 		efree = bdb->bi_cache.c_minfree;
+
 	if ( bdb->bi_cache.c_leaves > eimax ) {
 		eifree = bdb->bi_cache.c_minfree * 10;
 		if ( eifree >= eimax )
-- 
GitLab