diff options
author | guozhongfeng <guozhongfeng.gzf@alibaba-inc.com> | 2023-07-19 13:39:22 +0200 |
---|---|---|
committer | guozhongfeng <guozhongfeng.gzf@alibaba-inc.com> | 2023-07-19 13:39:22 +0200 |
commit | 88ff576f86412d609e60dffe7d92738dd5e863e8 (patch) | |
tree | b90eb3757b060250727e116ea09e873d5127c0dd /zebra | |
parent | zebra: The command ipv6 nht xxx not work (diff) | |
download | frr-88ff576f86412d609e60dffe7d92738dd5e863e8.tar.xz frr-88ff576f86412d609e60dffe7d92738dd5e863e8.zip |
zebra:unlock node after route_next
When route_next return node, it has lock the node. if return or break loop, should unlock node.
Signed-off-by: guozhongfeng <guozhongfeng.gzf@alibaba-inc.com>
Diffstat (limited to 'zebra')
-rw-r--r-- | zebra/zebra_vxlan.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/zebra/zebra_vxlan.c b/zebra/zebra_vxlan.c index 132862e69..d98ecaf59 100644 --- a/zebra/zebra_vxlan.c +++ b/zebra/zebra_vxlan.c @@ -891,6 +891,7 @@ static int zvni_map_to_svi_ns(struct ns *ns, if (vl->vid == in_param->vid) { *p_ifp = tmp_if; + route_unlock_node(rn); return NS_WALK_STOP; } } @@ -2005,6 +2006,7 @@ static int zl3vni_map_to_vxlan_if_ns(struct ns *ns, zl3vni->local_vtep_ip = zif->l2info.vxl.vtep_ip; *_pifp = (void *)ifp; + route_unlock_node(rn); return NS_WALK_STOP; } @@ -2116,6 +2118,7 @@ static int zl3vni_from_svi_ns(struct ns *ns, void *_in_param, void **_p_zl3vni) zif, in_param->br_if); if (vni_id) { found = 1; + route_unlock_node(rn); break; } } @@ -2402,6 +2405,7 @@ static int zebra_vxlan_handle_vni_transition(struct zebra_vrf *zvrf, vni_t vni, vnip = zebra_vxlan_if_vni_find(zif, vni); if (vnip) { found = true; + route_unlock_node(rn); break; } } |