• C
    [PATCH] slab: fix memory leak in alloc_kmemlist · 0718dc2a
    Christoph Lameter 提交于
    We have had this memory leak for a while now.  The situation is complicated
    by the use of alloc_kmemlist() as a function to resize various caches by
    do_tune_cpucache().
    
    What we do here is first of all make sure that we deallocate properly in
    the loop over all the nodes.
    
    If we are just resizing caches then we can simply return with -ENOMEM if an
    allocation fails.
    
    If the cache is new then we need to rollback and remove all earlier
    allocations.
    
    We detect that a cache is new by checking if the link to the global cache
    chain has been setup.  This is a bit hackish ....
    
    (also fix up too overlong lines that I added in the last patch...)
    Signed-off-by: NChristoph Lameter <clameter@sgi.com>
    Cc: Jesper Juhl <jesper.juhl@gmail.com>
    Signed-off-by: NAndrew Morton <akpm@osdl.org>
    Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
    0718dc2a
slab.c 107.1 KB