rem: nil: Remove maybe_cancel_validators() function

When shutting down an fctx, validators can just be canceled
without checking whether there are pending finds.

Merge branch 'ondrej/remove-maybe_cancel_validators' into 'main'

See merge request isc-projects/bind9!11229
This commit is contained in:
Ondřej Surý 2025-11-09 00:37:23 +01:00
commit 48deff9fae

View file

@ -669,8 +669,6 @@ negcache(dns_message_t *message, fetchctx_t *fctx, const dns_name_t *name,
static void
validated(void *arg);
static void
maybe_cancel_validators(fetchctx_t *fctx);
static void
add_bad(fetchctx_t *fctx, dns_message_t *rmessage, dns_adbaddrinfo_t *addrinfo,
isc_result_t reason, badnstype_t badtype);
static void
@ -1745,11 +1743,11 @@ fctx__done(fetchctx_t *fctx, isc_result_t result, const char *func,
fctx_stoptimer(fctx);
/*
* Cancel all pending validators. Note that this must be done
* without the fctx lock held, since that could cause
* deadlock.
* Cancel all pending validators.
*/
maybe_cancel_validators(fctx);
ISC_LIST_FOREACH(fctx->validators, validator, link) {
dns_validator_cancel(validator);
}
if (fctx->nsfetch != NULL) {
dns_resolver_cancelfetch(fctx->nsfetch);
@ -5119,28 +5117,6 @@ clone_results(fetchctx_t *fctx) {
#define CHASE(r) (((r)->attributes.chase))
#define CHECKNAMES(r) (((r)->attributes.checknames))
/*
* Cancel validators associated with '*fctx' if it is ready to be
* destroyed (i.e., no queries waiting for it and no pending ADB finds).
* Caller must hold fctx bucket lock.
*
* Requires:
* '*fctx' is shutting down.
*/
static void
maybe_cancel_validators(fetchctx_t *fctx) {
if (atomic_load_acquire(&fctx->pending) != 0 ||
atomic_load_acquire(&fctx->nqueries) != 0)
{
return;
}
REQUIRE(SHUTTINGDOWN(fctx));
ISC_LIST_FOREACH(fctx->validators, validator, link) {
dns_validator_cancel(validator);
}
}
/*
* typemap with just RRSIG(46) and NSEC(47) bits set.
*