Re: [patch 11/23] SLUB: Slab defrag core

Christoph Lameter
2007-11-07T22:13:43Z

This was so far only in the slab defrag git tree.

>From 8cc487b646e45da0644f432d7489ad8791164b5f Mon Sep 17 00:00:00 2001
From: Christoph Lameter <christoph@graphe.net>
Date: Tue, 6 Nov 2007 23:19:40 -0800
Subject: [PATCH] Fix two issues

1. Check inverted in kmem_cache_create

2. partial counter not decremented in __kmem_cache_shrink

Signed-off-by: Christoph Lameter <clameter@sgi.com>
---
mm/slub.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/mm/slub.c b/mm/slub.c
index 06fa4ed..de0557d 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -2789,7 +2789,7 @@ static int kmem_cache_vacate(struct page *page, void *scratch)
BUG_ON(!PageSlab(page));
local_irq_save(flags);
state = slab_lock(page);
- BUG_ON(state & FROZEN);
+ BUG_ON(!(state & FROZEN));

s = page->slab;
map = scratch + max_defrag_slab_objects * sizeof(void **);
@@ -2902,6 +2902,7 @@ static unsigned long __kmem_cache_shrink(struct kmem_cache *s,

} else {
list_del(&page->lru);
+ n->nr_partial--;
slab_unlock(page, state);
discard_slab(s, page);
freed++;
--
1.5.3.4