Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 261645
b: refs/heads/master
c: 8cb0a50
h: refs/heads/master
i:
  261643: 99e7aa9
v: v3
  • Loading branch information
Christoph Lameter authored and Pekka Enberg committed Jul 2, 2011
1 parent 47038d9 commit 6078961
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 50d5c41cd151b21ac1dfc98f048210456ccacc20
refs/heads/master: 8cb0a5068f4108e8ca60d5e0bcfbe6901adcfaef
8 changes: 6 additions & 2 deletions trunk/mm/slub.c
Original file line number Diff line number Diff line change
Expand Up @@ -1286,6 +1286,7 @@ static struct page *new_slab(struct kmem_cache *s, gfp_t flags, int node)

page->freelist = start;
page->inuse = 0;
page->frozen = 1;
out:
return page;
}
Expand Down Expand Up @@ -1424,7 +1425,6 @@ static inline int lock_and_freeze_slab(struct kmem_cache_node *n,
{
if (slab_trylock(page)) {
__remove_partial(n, page);
page->frozen = 1;
return 1;
}
return 0;
Expand Down Expand Up @@ -1538,7 +1538,6 @@ static void unfreeze_slab(struct kmem_cache *s, struct page *page, int tail)
{
struct kmem_cache_node *n = get_node(s, page_to_nid(page));

page->frozen = 0;
if (page->inuse) {

if (page->freelist) {
Expand Down Expand Up @@ -1671,6 +1670,7 @@ static void deactivate_slab(struct kmem_cache *s, struct kmem_cache_cpu *c)
}
c->page = NULL;
c->tid = next_tid(c->tid);
page->frozen = 0;
unfreeze_slab(s, page, tail);
}

Expand Down Expand Up @@ -1831,6 +1831,8 @@ static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
stat(s, ALLOC_REFILL);

load_freelist:
VM_BUG_ON(!page->frozen);

object = page->freelist;
if (unlikely(!object))
goto another_slab;
Expand All @@ -1854,6 +1856,7 @@ static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
page = get_partial(s, gfpflags, node);
if (page) {
stat(s, ALLOC_FROM_PARTIAL);
page->frozen = 1;
c->node = page_to_nid(page);
c->page = page;
goto load_freelist;
Expand Down Expand Up @@ -2371,6 +2374,7 @@ static void early_kmem_cache_node_alloc(int node)
BUG_ON(!n);
page->freelist = get_freepointer(kmem_cache_node, n);
page->inuse++;
page->frozen = 0;
kmem_cache_node->node[node] = n;
#ifdef CONFIG_SLUB_DEBUG
init_object(kmem_cache_node, n, SLUB_RED_ACTIVE);
Expand Down

0 comments on commit 6078961

Please sign in to comment.