diff options
Diffstat (limited to 'mm/slab.c')
-rw-r--r-- | mm/slab.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -2200,11 +2200,14 @@ static void drain_cpu_caches(struct kmem_cache *cachep) | |||
2200 | check_irq_on(); | 2200 | check_irq_on(); |
2201 | for_each_online_node(node) { | 2201 | for_each_online_node(node) { |
2202 | l3 = cachep->nodelists[node]; | 2202 | l3 = cachep->nodelists[node]; |
2203 | if (l3) { | 2203 | if (l3 && l3->alien) |
2204 | drain_alien_cache(cachep, l3->alien); | ||
2205 | } | ||
2206 | |||
2207 | for_each_online_node(node) { | ||
2208 | l3 = cachep->nodelists[node]; | ||
2209 | if (l3) | ||
2204 | drain_array(cachep, l3, l3->shared, 1, node); | 2210 | drain_array(cachep, l3, l3->shared, 1, node); |
2205 | if (l3->alien) | ||
2206 | drain_alien_cache(cachep, l3->alien); | ||
2207 | } | ||
2208 | } | 2211 | } |
2209 | } | 2212 | } |
2210 | 2213 | ||