mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-07 13:33:15 +00:00
bgpd: don't unlock bgp_dest twice
Both install_evpn_route_entry_in_vni_mac() and install_evpn_route_entry_in_vni_ip() will unlock the bgp_dest when install_evpn_route_entry_in_vni_common() returns, so there's no need to unlock the bgp_dest inside the _common function. Let's let the new wrappers handle the cleanup of the dest. Ticket: #3119673 Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
This commit is contained in:
parent
15919b8915
commit
b5118501ac
@ -2906,11 +2906,15 @@ static int install_evpn_route_entry_in_vni_common(
|
|||||||
|
|
||||||
new_local_es = bgp_evpn_attr_is_local_es(pi->attr);
|
new_local_es = bgp_evpn_attr_is_local_es(pi->attr);
|
||||||
} else {
|
} else {
|
||||||
if (attrhash_cmp(pi->attr, parent_pi->attr)
|
/* Return early if attributes haven't changed
|
||||||
&& !CHECK_FLAG(pi->flags, BGP_PATH_REMOVED)) {
|
* and dest isn't flagged for removal.
|
||||||
bgp_dest_unlock_node(dest);
|
* dest will be unlocked by either
|
||||||
|
* install_evpn_route_entry_in_vni_mac() or
|
||||||
|
* install_evpn_route_entry_in_vni_ip()
|
||||||
|
*/
|
||||||
|
if (attrhash_cmp(pi->attr, parent_pi->attr) &&
|
||||||
|
!CHECK_FLAG(pi->flags, BGP_PATH_REMOVED))
|
||||||
return 0;
|
return 0;
|
||||||
}
|
|
||||||
/* The attribute has changed. */
|
/* The attribute has changed. */
|
||||||
/* Add (or update) attribute to hash. */
|
/* Add (or update) attribute to hash. */
|
||||||
attr_new = bgp_attr_intern(parent_pi->attr);
|
attr_new = bgp_attr_intern(parent_pi->attr);
|
||||||
|
Loading…
Reference in New Issue
Block a user