+2975. [bug] rbtdb.c:cleanup_dead_nodes_callback() aquired the
+ wrong lock which could lead to server deadlock.
+ [RT #22614]
+
2974. [bug] Some vaild UPDATE requests could fail due to a
consistency check examining the existing version
of the zone rather than the new version resulting
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: rbtdb.c,v 1.292.8.14 2010/11/16 07:28:37 marka Exp $ */
+/* $Id: rbtdb.c,v 1.292.8.15 2010/12/02 05:07:03 marka Exp $ */
/*! \file */
unsigned int locknum;
unsigned int refs;
- RBTDB_LOCK(&rbtdb->lock, isc_rwlocktype_write);
+ RWLOCK(&rbtdb->tree_lock, isc_rwlocktype_write);
for (locknum = 0; locknum < rbtdb->node_lock_count; locknum++) {
NODE_LOCK(&rbtdb->node_locks[locknum].lock,
isc_rwlocktype_write);
NODE_UNLOCK(&rbtdb->node_locks[locknum].lock,
isc_rwlocktype_write);
}
- RBTDB_UNLOCK(&rbtdb->lock, isc_rwlocktype_write);
+ RWUNLOCK(&rbtdb->tree_lock, isc_rwlocktype_write);
if (again)
isc_task_send(task, &event);
else {