diff --git a/servers/slapd/overlays/dds.c b/servers/slapd/overlays/dds.c index 30a606d6f5..8cf4e57d7d 100644 --- a/servers/slapd/overlays/dds.c +++ b/servers/slapd/overlays/dds.c @@ -1723,17 +1723,17 @@ dds_db_open( di->di_suffix = be->be_suffix; di->di_nsuffix = be->be_nsuffix; - /* force deletion of expired entries... */ - be->bd_info = (BackendInfo *)on->on_info; - rc = dds_expire( thrctx, di ); - be->bd_info = (BackendInfo *)on; - if ( rc != LDAP_SUCCESS ) { - rc = 1; - goto done; - } - /* ... so that count, if required, is accurate */ if ( di->di_max_dynamicObjects > 0 ) { + /* force deletion of expired entries... */ + be->bd_info = (BackendInfo *)on->on_info; + rc = dds_expire( thrctx, di ); + be->bd_info = (BackendInfo *)on; + if ( rc != LDAP_SUCCESS ) { + rc = 1; + goto done; + } + rc = dds_count( thrctx, be ); if ( rc != LDAP_SUCCESS ) { rc = 1;