]> err.no Git - linux-2.6/commit
lib: add idr_remove_all
authorKristian Hoegsberg <krh@redhat.com>
Mon, 16 Jul 2007 06:37:24 +0000 (23:37 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Mon, 16 Jul 2007 16:05:34 +0000 (09:05 -0700)
commit23936cc0b5d89619c34c2dab11d8cf3d6f7ca028
tree506ec36cc37d3bc7dbf0ca68d1b271f9247fa458
parent96d7fa421e6424ad9ef6d1d039375dc2edb63fe8
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 <krh@redhat.com>
Cc: Tejun Heo <htejun@gmail.com>
Cc: Dave Airlie <airlied@linux.ie>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/idr.h
lib/idr.c