+2138. [bug] Lock order reversal in resolver.c. [RT #16653]
+
2137. [port] Mips little endian and/or mips 64 bit are now
supported for atomic operations. [RT#16648]
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: resolver.c,v 1.342 2007/02/07 04:49:18 marka Exp $ */
+/* $Id: resolver.c,v 1.343 2007/02/14 23:40:01 marka Exp $ */
/*! \file */
isc_boolean_t new_fctx = ISC_FALSE;
isc_event_t *event;
unsigned int count = 0;
+ unsigned int spillat;
UNUSED(forwarders);
bucketnum = dns_name_fullhash(name, ISC_FALSE) % res->nbuckets;
+ LOCK(&res->lock);
+ spillat = res->spillat;
+ UNLOCK(&res->lock);
LOCK(&res->buckets[bucketnum].lock);
if (res->buckets[bucketnum].exiting) {
}
}
if (count >= res->spillatmin && res->spillatmin != 0) {
- if (!fctx->spilled) {
- LOCK(&fctx->res->lock);
- if (count >= res->spillat)
- fctx->spilled = ISC_TRUE;
- UNLOCK(&fctx->res->lock);
- }
+ if (count >= spillat)
+ fctx->spilled = ISC_TRUE;
if (fctx->spilled) {
result = DNS_R_DROP;
goto unlock;