diff options
author | Barry Friedman <barryf@google.com> | 2011-02-03 14:02:53 -0800 |
---|---|---|
committer | Paul Jakma <paul@quagga.net> | 2011-03-21 13:15:32 +0000 |
commit | 25ff1e88bb5f1b0a16a364d7206db3ebdc5ecf52 (patch) | |
tree | cdb0c95588899c39ad676ef167c87b5c2a4d3a51 | |
parent | c099baf6f0a6509d70fb62a8d6341432abb50d91 (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.c | 1 |
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++; |