mirror of https://gitee.com/openkylin/linux.git
[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>
This commit is contained in:
parent
3e705f279a
commit
fc818301a8
|
@ -3119,16 +3119,7 @@ static void free_block(struct kmem_cache *cachep, void **objpp, int nr_objects,
|
|||
if (slabp->inuse == 0) {
|
||||
if (l3->free_objects > l3->free_limit) {
|
||||
l3->free_objects -= cachep->num;
|
||||
/*
|
||||
* It is safe to drop the lock. The slab is
|
||||
* no longer linked to the cache. cachep
|
||||
* cannot disappear - we are using it and
|
||||
* all destruction of caches must be
|
||||
* serialized properly by the user.
|
||||
*/
|
||||
spin_unlock(&l3->list_lock);
|
||||
slab_destroy(cachep, slabp);
|
||||
spin_lock(&l3->list_lock);
|
||||
} else {
|
||||
list_add(&slabp->list, &l3->slabs_free);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue