aboutsummaryrefslogtreecommitdiffstats
path: root/mm/slub.c
diff options
context:
space:
mode:
authorChristoph Lameter <clameter@sgi.com>2007-05-09 05:32:39 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-09 15:30:45 -0400
commit26a7bd030254c462a9e771f6edc54cb972044034 (patch)
treedbbcd0c5dccc8b1ecd71e342e2c26aa7b61be143 /mm/slub.c
parent1f99a283dc13b167b93b2e453a30782955f165c2 (diff)
SLUB: get rid of finish_bootstrap
Its only purpose was to bring some sort of symmetry to sysfs usage when dealing with bootstrapping per cpu flushing. Since we do not time out slabs anymore we have no need to run finish_bootstrap even without sysfs. Fold it back into slab_sysfs_init and drop the initcall for the !SYFS case. Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/slub.c')
-rw-r--r--mm/slub.c30
1 files changed, 10 insertions, 20 deletions
diff --git a/mm/slub.c b/mm/slub.c
index 5d425d7116e8..03d26f7142c7 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1704,23 +1704,6 @@ static int calculate_sizes(struct kmem_cache *s)
1704 1704
1705} 1705}
1706 1706
1707static int __init finish_bootstrap(void)
1708{
1709 struct list_head *h;
1710 int err;
1711
1712 slab_state = SYSFS;
1713
1714 list_for_each(h, &slab_caches) {
1715 struct kmem_cache *s =
1716 container_of(h, struct kmem_cache, list);
1717
1718 err = sysfs_slab_add(s);
1719 BUG_ON(err);
1720 }
1721 return 0;
1722}
1723
1724static int kmem_cache_open(struct kmem_cache *s, gfp_t gfpflags, 1707static int kmem_cache_open(struct kmem_cache *s, gfp_t gfpflags,
1725 const char *name, size_t size, 1708 const char *name, size_t size,
1726 size_t align, unsigned long flags, 1709 size_t align, unsigned long flags,
@@ -3482,6 +3465,7 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
3482 3465
3483static int __init slab_sysfs_init(void) 3466static int __init slab_sysfs_init(void)
3484{ 3467{
3468 struct list_head *h;
3485 int err; 3469 int err;
3486 3470
3487 err = subsystem_register(&slab_subsys); 3471 err = subsystem_register(&slab_subsys);
@@ -3490,7 +3474,15 @@ static int __init slab_sysfs_init(void)
3490 return -ENOSYS; 3474 return -ENOSYS;
3491 } 3475 }
3492 3476
3493 finish_bootstrap(); 3477 slab_state = SYSFS;
3478
3479 list_for_each(h, &slab_caches) {
3480 struct kmem_cache *s =
3481 container_of(h, struct kmem_cache, list);
3482
3483 err = sysfs_slab_add(s);
3484 BUG_ON(err);
3485 }
3494 3486
3495 while (alias_list) { 3487 while (alias_list) {
3496 struct saved_alias *al = alias_list; 3488 struct saved_alias *al = alias_list;
@@ -3506,6 +3498,4 @@ static int __init slab_sysfs_init(void)
3506} 3498}
3507 3499
3508__initcall(slab_sysfs_init); 3500__initcall(slab_sysfs_init);
3509#else
3510__initcall(finish_bootstrap);
3511#endif 3501#endif