summaryrefslogtreecommitdiff
path: root/nest/rt-table.c
diff options
context:
space:
mode:
Diffstat (limited to 'nest/rt-table.c')
-rw-r--r--nest/rt-table.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/nest/rt-table.c b/nest/rt-table.c
index afafef62..ed0132ca 100644
--- a/nest/rt-table.c
+++ b/nest/rt-table.c
@@ -1813,7 +1813,16 @@ rt_table_export_stop(struct rt_export_hook *hook)
rtable *tab = SKIP_BACK(rtable, exporter, hook->table);
if (hook->export_state == TES_FEEDING)
- fit_get(&tab->fib, &hook->feed_fit);
+ if (hook->walk_lock)
+ {
+ rt_unlock_trie(tab, hook->walk_lock);
+ hook->walk_lock = NULL;
+
+ mb_free(hook->walk_state);
+ hook->walk_state = NULL;
+ }
+ else
+ fit_get(&tab->fib, &hook->feed_fit);
}
void