Update set_cache_del() from the monitor path to remove sets in the cache. Fixes: df48e56e987f ("cache: add hashtable cache for sets") Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> --- include/cache.h | 1 + src/cache.c | 5 +++++ src/monitor.c | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/include/cache.h b/include/cache.h index 992f993c0667..f5b4876a4d40 100644 --- a/include/cache.h +++ b/include/cache.h @@ -70,6 +70,7 @@ struct chain; void chain_cache_add(struct chain *chain, struct table *table); struct chain *chain_cache_find(const struct table *table, const char *name); void set_cache_add(struct set *set, struct table *table); +void set_cache_del(struct set *set); struct set *set_cache_find(const struct table *table, const char *name); struct cache { diff --git a/src/cache.c b/src/cache.c index 1aec12666d52..03b781bb4834 100644 --- a/src/cache.c +++ b/src/cache.c @@ -319,6 +319,11 @@ void set_cache_add(struct set *set, struct table *table) cache_add(&set->cache, &table->set_cache, hash); } +void set_cache_del(struct set *set) +{ + cache_del(&set->cache); +} + struct set *set_cache_find(const struct table *table, const char *name) { struct set *set; diff --git a/src/monitor.c b/src/monitor.c index ae288f6cb212..00cf7d135034 100644 --- a/src/monitor.c +++ b/src/monitor.c @@ -687,7 +687,7 @@ out: static void netlink_events_cache_delset_cb(struct set *s, void *data) { - list_del(&s->list); + set_cache_del(s); set_free(s); } -- 2.20.1