diff --git a/mm/slub.c b/mm/slub.c
index ffe13fdf8144adadfcc0a55b976f412009e87b38..80848cd3901cc8ab052f43d52e2415fb3b7f4829 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -2040,7 +2040,7 @@ static bool has_cpu_slab(int cpu, void *info)
 	struct kmem_cache *s = info;
 	struct kmem_cache_cpu *c = per_cpu_ptr(s->cpu_slab, cpu);
 
-	return !!(c->page);
+	return c->page || c->partial;
 }
 
 static void flush_all(struct kmem_cache *s)