net/quagga: add an upstream pending patch
git-svn-id: svn://svn.openwrt.org/openwrt/packages@25650 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
3ba0874fc2
commit
53fe371f27
31
net/quagga/patches/000-upstream-bgp_lock_node.patch
Normal file
31
net/quagga/patches/000-upstream-bgp_lock_node.patch
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
From: Barry Friedman <barryf@google.com>
|
||||||
|
Date: Thu, 3 Feb 2011 22:02:53 +0000 (-0800)
|
||||||
|
Subject: bgpd: Remove extra lock on interior table node
|
||||||
|
X-Git-Url: http://git.ozo.com/?p=quagga-next.git;a=commitdiff_plain;h=765ec33b44a7d8cf9290acd19dc19953df4ddb0d
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
Signed-off-by: Barry Friedman <barryf@google.com>
|
||||||
|
---
|
||||||
|
|
||||||
|
diff --git a/bgpd/bgp_table.c b/bgpd/bgp_table.c
|
||||||
|
index 91cab60..a249c23 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++;
|
Loading…
x
Reference in New Issue
Block a user