zebra: Fix specific prefix handling

Suppose we are handling the process_workq and either a new static
route is installed or a Routing Protocol installs a new route.
We will call evaluate_rnh with a specific prefix.  We might
have a situation where we clear the NHC flag prematurely.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2017-03-09 19:37:23 -05:00
parent 685e701ef3
commit feb554e508

View File

@ -730,10 +730,7 @@ zebra_evaluate_rnh (vrf_id_t vrfid, int family, int force, rnh_type_t type,
/* Evaluating a specific entry, make sure it exists. */
nrn = route_node_lookup (rnh_table, p);
if (nrn && nrn->info)
{
zebra_rnh_evaluate_entry (vrfid, family, force, type, nrn);
zebra_rnh_clear_nhc_flag (vrfid, family, type, nrn);
}
zebra_rnh_evaluate_entry (vrfid, family, force, type, nrn);
if (nrn)
route_unlock_node (nrn);