dns_zone_catz_disable_db(zone, load->db);
}
+ tresult = dns_db_endload(load->db, &load->callbacks);
+ if (tresult != ISC_R_SUCCESS &&
+ (result == ISC_R_SUCCESS || result == DNS_R_SEENINCLUDE))
+ {
+ result = tresult;
+ }
+
/*
* Lock hierarchy: zmgr, zone, raw.
*/
goto again;
}
}
- tresult = zone_postload(zone, load->db, load->loadtime, result);
- if (tresult != ISC_R_SUCCESS &&
- (result == ISC_R_SUCCESS || result == DNS_R_SEENINCLUDE))
- {
- result = tresult;
- }
+ (void)zone_postload(zone, load->db, load->loadtime, result);
DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_LOADING);
+ zone_idetach(&load->callbacks.zone);
/*
* Leave the zone frozen if the reload fails.
*/
}
UNLOCK_ZONE(zone);
- (void)dns_db_endload(load->db, &load->callbacks);
-
- LOCK_ZONE(zone);
- zone_idetach(&load->callbacks.zone);
- UNLOCK_ZONE(zone);
-
dns_db_detach(&load->db);
if (zone->loadctx != NULL) {
dns_loadctx_detach(&zone->loadctx);