]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: Remove extra lock on interior table node
authorBarry Friedman <barryf@google.com>
Thu, 3 Feb 2011 22:02:53 +0000 (14:02 -0800)
committerPaul Jakma <paul@quagga.net>
Mon, 21 Mar 2011 13:15:32 +0000 (13:15 +0000)
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

bgpd/bgp_table.c

index 91cab60671937c07465a5ef0e54b95a291c158b1..a249c23d9dc6161717d7552db5acb81a41c2a95a 100644 (file)
@@ -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++;