From 23936cc0b5d89619c34c2dab11d8cf3d6f7ca028 Mon Sep 17 00:00:00 2001 From: Kristian Hoegsberg Date: Sun, 15 Jul 2007 23:37:24 -0700 Subject: lib: add idr_remove_all Remove all ids from the given idr tree. idr_destroy() only frees up unused, cached idp_layers, but this function will remove all id mappings and leave all idp_layers unused. A typical clean-up sequence for objects stored in an idr tree, will use idr_for_each() to free all objects, if necessay, then idr_remove_all() to remove all ids, and idr_destroy() to free up the cached idr_layers. Signed-off-by: Kristian Hoegsberg Cc: Tejun Heo Cc: Dave Airlie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- include/linux/idr.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/linux/idr.h') diff --git a/include/linux/idr.h b/include/linux/idr.h index 8442c0bffc0..0edda411959 100644 --- a/include/linux/idr.h +++ b/include/linux/idr.h @@ -82,6 +82,7 @@ int idr_for_each(struct idr *idp, int (*fn)(int id, void *p, void *data), void *data); void *idr_replace(struct idr *idp, void *ptr, int id); void idr_remove(struct idr *idp, int id); +void idr_remove_all(struct idr *idp); void idr_destroy(struct idr *idp); void idr_init(struct idr *idp); -- cgit v1.2.3