forked from luck/tmp_suning_uos_patched
Slab: Fix memory leak in fallback_alloc()
The zonelist patches caused the loop that checks for available objects in permitted zones to not terminate immediately. One object per zone per allocation may be allocated and then abandoned. Break the loop when we have successfully allocated one object. Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
62a8efe632
commit
481c5346d0
|
@ -3263,9 +3263,12 @@ static void *fallback_alloc(struct kmem_cache *cache, gfp_t flags)
|
|||
|
||||
if (cpuset_zone_allowed_hardwall(zone, flags) &&
|
||||
cache->nodelists[nid] &&
|
||||
cache->nodelists[nid]->free_objects)
|
||||
cache->nodelists[nid]->free_objects) {
|
||||
obj = ____cache_alloc_node(cache,
|
||||
flags | GFP_THISNODE, nid);
|
||||
if (obj)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!obj) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user