diff options
author | Christoph Lameter <cl@linux.com> | 2011-07-22 09:35:14 -0500 |
---|---|---|
committer | Pekka Enberg <penberg@kernel.org> | 2011-07-25 20:58:19 +0300 |
commit | 9e577e8b46ab0c38970c0f0cd7eae62e6dffddee (patch) | |
tree | 068d8d50963b53a8ce25470328ff6ebe5a51b198 /mm/slub.c | |
parent | 1d07171c5e58e68a76a141970a3a5e816a414ce6 (diff) | |
download | blackbird-op-linux-9e577e8b46ab0c38970c0f0cd7eae62e6dffddee.tar.gz blackbird-op-linux-9e577e8b46ab0c38970c0f0cd7eae62e6dffddee.zip |
slub: When allocating a new slab also prep the first object
We need to branch to the debug code for the first object if we allocate
a new slab otherwise the first object will be marked wrongly as inactive.
Tested-by: Rabin Vincent <rabin@rab.in>
Signed-off-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Diffstat (limited to 'mm/slub.c')
-rw-r--r-- | mm/slub.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/mm/slub.c b/mm/slub.c index 7836b45ea1fa..e842c19e67fb 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -2082,6 +2082,9 @@ new_slab: stat(s, ALLOC_SLAB); c->node = page_to_nid(page); c->page = page; + + if (kmem_cache_debug(s)) + goto debug; goto load_freelist; } if (!(gfpflags & __GFP_NOWARN) && printk_ratelimit()) |