slub: do not put a slab to cpu partial list when cpu_partial is 0
authorJoonsoo Kim <iamjoonsoo.kim@lge.com>
Wed, 19 Jun 2013 06:33:55 +0000 (15:33 +0900)
committerPekka Enberg <penberg@kernel.org>
Sun, 7 Jul 2013 15:46:30 +0000 (18:46 +0300)
In free path, we don't check number of cpu_partial, so one slab can
be linked in cpu partial list even if cpu_partial is 0. To prevent this,
we should check number of cpu_partial in put_cpu_partial().

Acked-by: Christoph Lameeter <cl@linux.com>
Reviewed-by: Wanpeng Li <liwanp@linux.vnet.ibm.com>
Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
mm/slub.c

index 5ee6c7cd9fc43b6bf8da931c4a99cefada060070..54cc4d544f3cb47fbe518888ffc5abf873efc341 100644 (file)
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1954,6 +1954,9 @@ static void put_cpu_partial(struct kmem_cache *s, struct page *page, int drain)
        int pages;
        int pobjects;
 
+       if (!s->cpu_partial)
+               return;
+
        do {
                pages = 0;
                pobjects = 0;