[PATCH nft 03/10] cache: add set_cache_del() and use it

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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     | 6 ++++++
 src/monitor.c   | 2 +-
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/include/cache.h b/include/cache.h
index 6fa21742503c..d3be4c8a8693 100644
--- a/include/cache.h
+++ b/include/cache.h
@@ -60,6 +60,7 @@ void chain_cache_add(struct chain *chain, struct table *table);
 struct chain *chain_cache_find(const struct table *table,
 			       const struct handle *handle);
 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);
 
 void obj_cache_add(struct obj *obj, struct table *table);
diff --git a/src/cache.c b/src/cache.c
index 95b5c46306c3..73c96a17704a 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -324,6 +324,12 @@ void set_cache_add(struct set *set, struct table *table)
 	list_add_tail(&set->cache_list, &table->cache_set);
 }
 
+void set_cache_del(struct set *set)
+{
+	list_del(&set->cache_hlist);
+	list_del(&set->cache_list);
+}
+
 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 1f0f8a361fbd..eb887d9344fa 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




[Index of Archives]     [Netfitler Users]     [Berkeley Packet Filter]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux