From: David Ahern <dsah...@gmail.com> Add ll_drop_by_index to remove an entry from the link cache.
Signed-off-by: David Ahern <dsah...@gmail.com> --- include/ll_map.h | 1 + lib/ll_map.c | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/include/ll_map.h b/include/ll_map.h index 511fe00b8567..4de1041e2746 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 1ab8ef0758ac..8e8a0b1e9c9d 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; -- 2.11.0