diff options
author | Akinobu Mita <akinobu.mita@gmail.com> | 2008-04-29 01:03:13 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-29 08:06:25 -0700 |
commit | 199f0ca514f9c17668eec4f935c4ba24cd789f85 (patch) | |
tree | 54406e3eb5be58e3350d8f60a64ac78ec3990f97 /include/linux/idr.h | |
parent | 801678c5a3b4c79236970bcca27c733f5559e0d1 (diff) | |
download | linux-stable-199f0ca514f9c17668eec4f935c4ba24cd789f85.tar.gz linux-stable-199f0ca514f9c17668eec4f935c4ba24cd789f85.tar.bz2 linux-stable-199f0ca514f9c17668eec4f935c4ba24cd789f85.zip |
idr: create idr_layer_cache at boot time
Avoid a possible kmem_cache_create() failure by creating idr_layer_cache
unconditionary at boot time rather than creating it on-demand when idr_init()
is called the first time.
This change also enables us to eliminate the check every time idr_init() is
called.
[akpm@linux-foundation.org: rename init_id_cache() to idr_init_cache()]
[akpm@linux-foundation.org: fix alpha build]
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/idr.h')
-rw-r--r-- | include/linux/idr.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/idr.h b/include/linux/idr.h index 0edda411959c..9a2d762124de 100644 --- a/include/linux/idr.h +++ b/include/linux/idr.h @@ -14,6 +14,7 @@ #include <linux/types.h> #include <linux/bitops.h> +#include <linux/init.h> #if BITS_PER_LONG == 32 # define IDR_BITS 5 @@ -115,4 +116,6 @@ void ida_remove(struct ida *ida, int id); void ida_destroy(struct ida *ida); void ida_init(struct ida *ida); +void __init idr_init_cache(void); + #endif /* __IDR_H__ */ |