diff options
| author | Grant Likely <grant.likely@secretlab.ca> | 2010-12-23 00:41:14 -0700 |
|---|---|---|
| committer | Grant Likely <grant.likely@secretlab.ca> | 2010-12-23 00:41:14 -0700 |
| commit | cfb13c5db08c90311a5defdde9a0328ee788cca5 (patch) | |
| tree | 842cb60d1d19b99e550fdbc653723e4b13e51ee5 /mm/slub.c | |
| parent | 4b6ba8aacbb3185703b797286547d0f8f3859b02 (diff) | |
| parent | 90a8a73c06cc32b609a880d48449d7083327e11a (diff) | |
Merge commit 'v2.6.37-rc7' into devicetree/next
Diffstat (limited to 'mm/slub.c')
| -rw-r--r-- | mm/slub.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/mm/slub.c b/mm/slub.c index 8fd5401bb07..bec0e355fba 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -3273,9 +3273,9 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size, kfree(n); kfree(s); } +err: up_write(&slub_lock); -err: if (flags & SLAB_PANIC) panic("Cannot create slabcache %s\n", name); else @@ -3401,13 +3401,13 @@ static int validate_slab(struct kmem_cache *s, struct page *page, for_each_free_object(p, s, page->freelist) { set_bit(slab_index(p, s, addr), map); - if (!check_object(s, page, p, 0)) + if (!check_object(s, page, p, SLUB_RED_INACTIVE)) return 0; } for_each_object(p, s, addr, page->objects) if (!test_bit(slab_index(p, s, addr), map)) - if (!check_object(s, page, p, 1)) + if (!check_object(s, page, p, SLUB_RED_ACTIVE)) return 0; return 1; } @@ -3862,6 +3862,7 @@ static ssize_t show_slab_objects(struct kmem_cache *s, x += sprintf(buf + x, " N%d=%lu", node, nodes[node]); #endif + up_read(&slub_lock); kfree(nodes); return x + sprintf(buf + x, "\n"); } |
