From: HAMANO Tsukasa Date: Thu, 2 Sep 2021 05:00:36 +0000 (+0900) Subject: ITS#9631 back-wt: closing cache db politely X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c66c9f87ebd1fc12ef0845acfaef221b7d184081;p=thirdparty%2Fopenldap.git ITS#9631 back-wt: closing cache db politely --- diff --git a/servers/slapd/back-wt/init.c b/servers/slapd/back-wt/init.c index ba828bf109..730ccd261f 100644 --- a/servers/slapd/back-wt/init.c +++ b/servers/slapd/back-wt/init.c @@ -232,20 +232,25 @@ wt_db_close( BackendDB *be, ConfigReply *cr ) struct wt_info *wi = (struct wt_info *) be->be_private; int rc; - if ( !wi->wi_conn ) { - return -1; + if ( wi->wi_cache ) { + rc = wi->wi_cache->close(wi->wi_cache, NULL); + if( rc ) { + Debug( LDAP_DEBUG_ANY, + "wt_db_close: cannot close cache database (%d).\n", rc ); + return -1; + } } - rc = wi->wi_conn->close(wi->wi_conn, NULL); - if( rc ) { - int saved_errno = errno; - Debug( LDAP_DEBUG_ANY, - "wt_db_close: cannot close database (%d).\n", saved_errno ); - return -1; + if ( wi->wi_conn ) { + rc = wi->wi_conn->close(wi->wi_conn, NULL); + if( rc ) { + Debug( LDAP_DEBUG_ANY, + "wt_db_close: cannot close database (%d).\n", rc ); + return -1; + } + wi->wi_flags &= ~WT_IS_OPEN; } - wi->wi_flags &= ~WT_IS_OPEN; - return LDAP_SUCCESS; }