mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-28 04:34:54 -04:00
[9.20] fix: dev: Don't skip the counting if fcount_incr() is called with force==true
The fcount_incr() was incorrectly skipping the accounting for the fetches-per-zone if the force argument was set to true. We want to skip the accounting only when the fetches-per-zone is completely disabled, but for individual names we need to do the accounting even if we are forcing the result to be success. Backport of https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/9115 Merge branch 'backport-4786-forced-fcount_incr-should-still-increment-count-and-allowed-9.20' into 'bind-9.20' See merge request isc-projects/bind9!9241
This commit is contained in:
commit
9cd2880a82
1 changed files with 3 additions and 2 deletions
|
|
@ -1439,8 +1439,9 @@ fcount_incr(fetchctx_t *fctx, bool force) {
|
|||
REQUIRE(res != NULL);
|
||||
INSIST(fctx->counter == NULL);
|
||||
|
||||
/* Skip any counting if fetches-per-zone is disabled */
|
||||
spill = atomic_load_acquire(&res->zspill);
|
||||
if (force || spill == 0) {
|
||||
if (spill == 0) {
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
|
|
@ -1486,7 +1487,7 @@ fcount_incr(fetchctx_t *fctx, bool force) {
|
|||
|
||||
INSIST(spill > 0);
|
||||
LOCK(&counter->lock);
|
||||
if (++counter->count > spill) {
|
||||
if (!force && ++counter->count > spill) {
|
||||
counter->count--;
|
||||
INSIST(counter->count > 0);
|
||||
counter->dropped++;
|
||||
|
|
|
|||
Loading…
Reference in a new issue