summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarry Friedman <barryf@google.com>2011-02-03 14:02:53 -0800
committerPaul Jakma <paul@quagga.net>2011-03-21 13:15:32 +0000
commit25ff1e88bb5f1b0a16a364d7206db3ebdc5ecf52 (patch)
treecdb0c95588899c39ad676ef167c87b5c2a4d3a51
parentc099baf6f0a6509d70fb62a8d6341432abb50d91 (diff)
bgpd: Remove extra lock on interior table node
If the radix tree creates an extra interior node in bgp_node_get(), it locks the interior node even though this node is not returned to the caller, so it may never be unlocked. The lock prevents this node from being deleted. * bgpd/bgp_table.c: (bgp_node_get) Remove lock on interior node which prevents proper node deletion
-rw-r--r--bgpd/bgp_table.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/bgpd/bgp_table.c b/bgpd/bgp_table.c
index 91cab606..a249c23d 100644
--- a/bgpd/bgp_table.c
+++ b/bgpd/bgp_table.c
@@ -350,7 +350,6 @@ bgp_node_get (struct bgp_table *const table, struct prefix *p)
if (new->p.prefixlen != p->prefixlen)
{
match = new;
- bgp_lock_node (match);
new = bgp_node_set (table, p);
set_link (match, new);
table->count++;