diff options
author | Ingo Molnar <mingo@elte.hu> | 2006-07-13 03:12:21 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-07-13 18:38:43 -0400 |
commit | fc818301a8a39fedd7f0a71f878f29130c72193d (patch) | |
tree | 97db2563dab14944f0131bf6d59c712c997ae328 | |
parent | 3e705f279a942471b258b1c7a9e54aa8ff36b89f (diff) |
[PATCH] revert slab.c locking change
Chandra Seetharaman reported SLAB crashes caused by the slab.c lock
annotation patch. There is only one chunk of that patch that has a
material effect on the slab logic - this patch undoes that chunk.
This was confirmed to fix the slab problem by Chandra.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Tested-by: Chandra Seetharaman <sekharan@us.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | mm/slab.c | 9 |
1 files changed, 0 insertions, 9 deletions
@@ -3119,16 +3119,7 @@ static void free_block(struct kmem_cache *cachep, void **objpp, int nr_objects, | |||
3119 | if (slabp->inuse == 0) { | 3119 | if (slabp->inuse == 0) { |
3120 | if (l3->free_objects > l3->free_limit) { | 3120 | if (l3->free_objects > l3->free_limit) { |
3121 | l3->free_objects -= cachep->num; | 3121 | l3->free_objects -= cachep->num; |
3122 | /* | ||
3123 | * It is safe to drop the lock. The slab is | ||
3124 | * no longer linked to the cache. cachep | ||
3125 | * cannot disappear - we are using it and | ||
3126 | * all destruction of caches must be | ||
3127 | * serialized properly by the user. | ||
3128 | */ | ||
3129 | spin_unlock(&l3->list_lock); | ||
3130 | slab_destroy(cachep, slabp); | 3122 | slab_destroy(cachep, slabp); |
3131 | spin_lock(&l3->list_lock); | ||
3132 | } else { | 3123 | } else { |
3133 | list_add(&slabp->list, &l3->slabs_free); | 3124 | list_add(&slabp->list, &l3->slabs_free); |
3134 | } | 3125 | } |