diff options
| author | Roland Dreier <rolandd@cisco.com> | 2005-10-23 20:56:59 -0400 |
|---|---|---|
| committer | Roland Dreier <rolandd@cisco.com> | 2005-10-23 20:56:59 -0400 |
| commit | e7d311da9cba1e113f82176130d3af1be77dc3ee (patch) | |
| tree | 05b4baf382124a9a0342777127c09832dcbd88c0 /lib/idr.c | |
| parent | c8e0ca683dfea7242ff29814561dfe761945e5b3 (diff) | |
| parent | ba9e358fd04190a59e605c2963a15e014139a707 (diff) | |
Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'lib/idr.c')
| -rw-r--r-- | lib/idr.c | 13 |
1 files changed, 13 insertions, 0 deletions
| @@ -346,6 +346,19 @@ void idr_remove(struct idr *idp, int id) | |||
| 346 | EXPORT_SYMBOL(idr_remove); | 346 | EXPORT_SYMBOL(idr_remove); |
| 347 | 347 | ||
| 348 | /** | 348 | /** |
| 349 | * idr_destroy - release all cached layers within an idr tree | ||
| 350 | * idp: idr handle | ||
| 351 | */ | ||
| 352 | void idr_destroy(struct idr *idp) | ||
| 353 | { | ||
| 354 | while (idp->id_free_cnt) { | ||
| 355 | struct idr_layer *p = alloc_layer(idp); | ||
| 356 | kmem_cache_free(idr_layer_cache, p); | ||
| 357 | } | ||
| 358 | } | ||
| 359 | EXPORT_SYMBOL(idr_destroy); | ||
| 360 | |||
| 361 | /** | ||
| 349 | * idr_find - return pointer for given id | 362 | * idr_find - return pointer for given id |
| 350 | * @idp: idr handle | 363 | * @idp: idr handle |
| 351 | * @id: lookup key | 364 | * @id: lookup key |
