]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Remove maybe_cancel_validators() function
authorEvan Hunt <each@isc.org>
Sat, 25 Oct 2025 00:01:14 +0000 (17:01 -0700)
committerOndřej Surý <ondrej@isc.org>
Sat, 8 Nov 2025 17:00:32 +0000 (18:00 +0100)
When shutting down an fctx, validators can just be canceled
without checking whether there are pending finds.

lib/dns/resolver.c

index 85019613fb1800d5c746faaf27b57a0398b5f85a..091481a3e37696d2da5bab07cf8dbe0e27755aa3 100644 (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.
  *