From: David Ahern Date: Mon, 7 Jan 2019 22:29:15 +0000 (-0800) Subject: ll_map: Add function to remove link cache entry by index X-Git-Tag: v5.1.0~27^2~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=25c6339b223f17d1603702c0c87f06b252bb4949;p=thirdparty%2Fiproute2.git ll_map: Add function to remove link cache entry by index Add ll_drop_by_index to remove an entry from the link cache. Signed-off-by: David Ahern --- diff --git a/include/ll_map.h b/include/ll_map.h index 511fe00b8..4de1041e2 100644 --- a/include/ll_map.h +++ b/include/ll_map.h @@ -9,6 +9,7 @@ unsigned ll_name_to_index(const char *name); const char *ll_index_to_name(unsigned idx); int ll_index_to_type(unsigned idx); int ll_index_to_flags(unsigned idx); +void ll_drop_by_index(unsigned index); unsigned namehash(const char *str); const char *ll_idx_n2a(unsigned int idx); diff --git a/lib/ll_map.c b/lib/ll_map.c index 1ab8ef075..8e8a0b1e9 100644 --- a/lib/ll_map.c +++ b/lib/ll_map.c @@ -210,6 +210,20 @@ unsigned ll_name_to_index(const char *name) return idx; } +void ll_drop_by_index(unsigned index) +{ + struct ll_cache *im; + + im = ll_get_by_index(index); + if (!im) + return; + + hlist_del(&im->idx_hash); + hlist_del(&im->name_hash); + + free(im); +} + void ll_init_map(struct rtnl_handle *rth) { static int initialized;