handle_rtable_change_cb() references the new nexthop before calling
the algorithm. If the algorithm asks to batch the change by
returning FLM_BATCH, queue_rtable_change() references the same
nexthop again for the queued entry, while apply_rtable_changes()
only unreferences the old nexthop of each entry.
Reference new nhop once in handle_rtable_change_cb(), before
deciding whether the change is queued or passed to the algorithm,
and do not reference it again in fill_change_entry(). This also
leaves the queue reallocation as the only way for
queue_rtable_change() to fail.
Currently, dxr is the only algorithm returning FLM_BATCH.
Fixes: 6b8ef0d428c9 ("Add batched update support for the fib algo.")
MFC after: 3 days