diff options
Diffstat (limited to 'mm/slub.c')
-rw-r--r-- | mm/slub.c | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -1470,6 +1470,9 @@ static void *__slab_alloc(struct kmem_cache *s, | |||
1470 | void **object; | 1470 | void **object; |
1471 | struct page *new; | 1471 | struct page *new; |
1472 | 1472 | ||
1473 | /* We handle __GFP_ZERO in the caller */ | ||
1474 | gfpflags &= ~__GFP_ZERO; | ||
1475 | |||
1473 | if (!c->page) | 1476 | if (!c->page) |
1474 | goto new_slab; | 1477 | goto new_slab; |
1475 | 1478 | ||
@@ -2685,6 +2688,7 @@ void kfree(const void *x) | |||
2685 | } | 2688 | } |
2686 | EXPORT_SYMBOL(kfree); | 2689 | EXPORT_SYMBOL(kfree); |
2687 | 2690 | ||
2691 | #if defined(SLUB_DEBUG) || defined(CONFIG_SLABINFO) | ||
2688 | static unsigned long count_partial(struct kmem_cache_node *n) | 2692 | static unsigned long count_partial(struct kmem_cache_node *n) |
2689 | { | 2693 | { |
2690 | unsigned long flags; | 2694 | unsigned long flags; |
@@ -2697,6 +2701,7 @@ static unsigned long count_partial(struct kmem_cache_node *n) | |||
2697 | spin_unlock_irqrestore(&n->list_lock, flags); | 2701 | spin_unlock_irqrestore(&n->list_lock, flags); |
2698 | return x; | 2702 | return x; |
2699 | } | 2703 | } |
2704 | #endif | ||
2700 | 2705 | ||
2701 | /* | 2706 | /* |
2702 | * kmem_cache_shrink removes empty slabs from the partial lists and sorts | 2707 | * kmem_cache_shrink removes empty slabs from the partial lists and sorts |