diff --git a/lib/dns/rbtdb.c b/lib/dns/rbtdb.c index c60117c5ee..34fc404b2e 100644 --- a/lib/dns/rbtdb.c +++ b/lib/dns/rbtdb.c @@ -1453,11 +1453,11 @@ maybe_free_rbtdb(dns_rbtdb_t *rbtdb) { for (i = 0; i < rbtdb->node_lock_count; i++) { NODE_LOCK(&rbtdb->node_locks[i].lock, isc_rwlocktype_write); rbtdb->node_locks[i].exiting = true; - NODE_UNLOCK(&rbtdb->node_locks[i].lock, isc_rwlocktype_write); if (isc_refcount_current(&rbtdb->node_locks[i].references) == 0) { inactive++; } + NODE_UNLOCK(&rbtdb->node_locks[i].lock, isc_rwlocktype_write); } if (inactive != 0) {