]> git.sur5r.net Git - openldap/commitdiff
Clean up prev commit
authorHoward Chu <hyc@openldap.org>
Wed, 4 Nov 2009 06:09:51 +0000 (06:09 +0000)
committerHoward Chu <hyc@openldap.org>
Wed, 4 Nov 2009 06:09:51 +0000 (06:09 +0000)
servers/slapd/back-bdb/cache.c

index be80a22b2bd97b09990ca19014d94d147b8ce62d..4e5636f73b57aba4a7954586316eef50d43f001d 100644 (file)
@@ -1072,18 +1072,20 @@ load1:
        if ( rc == 0 ) {
                int purge = 0;
 
-               ldap_pvt_thread_mutex_lock( &bdb->bi_cache.c_count_mutex );
-               if ( load && !( flag & ID_NOCACHE )) {
-                       bdb->bi_cache.c_cursize++;
-                       if ( !bdb->bi_cache.c_purging && bdb->bi_cache.c_cursize > bdb->bi_cache.c_maxsize ) {
+               if (( load && !( flag & ID_NOCACHE )) || bdb->bi_cache.c_eimax ) {
+                       ldap_pvt_thread_mutex_lock( &bdb->bi_cache.c_count_mutex );
+                       if ( load && !( flag & ID_NOCACHE )) {
+                               bdb->bi_cache.c_cursize++;
+                               if ( !bdb->bi_cache.c_purging && bdb->bi_cache.c_cursize > bdb->bi_cache.c_maxsize ) {
+                                       purge = 1;
+                                       bdb->bi_cache.c_purging = 1;
+                               }
+                       } else if ( !bdb->bi_cache.c_purging && bdb->bi_cache.c_eimax && bdb->bi_cache.c_leaves > bdb->bi_cache.c_eimax ) {
                                purge = 1;
                                bdb->bi_cache.c_purging = 1;
                        }
-               } else if ( !bdb->bi_cache.c_purging && bdb->bi_cache.c_eimax && bdb->bi_cache.c_leaves > bdb->bi_cache.c_eimax ) {
-                       purge = 1;
-                       bdb->bi_cache.c_purging = 1;
+                       ldap_pvt_thread_mutex_unlock( &bdb->bi_cache.c_count_mutex );
                }
-               ldap_pvt_thread_mutex_unlock( &bdb->bi_cache.c_count_mutex );
                if ( purge )
                        bdb_cache_lru_purge( bdb );
        }