search for: ba2ca53

Displaying 2 results from an estimated 2 matches for "ba2ca53".

2013 Jan 16
6
[PATCH V2] mm/slab: add a leak decoder callback
...mem_cache_destroy); +void kmem_cache_destroy_decoder(struct kmem_cache *s, void (*decoder)(void *)) +{ + return __kmem_cache_destroy(s, decoder); +} +EXPORT_SYMBOL(kmem_cache_destroy_decoder); + int slab_is_available(void) { return slab_state >= UP; diff --git a/mm/slub.c b/mm/slub.c index ba2ca53..34b3b75 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -3098,6 +3098,8 @@ static void list_slab_objects(struct kmem_cache *s, struct page *page, for_each_object(p, s, addr, page->objects) { if (!test_bit(slab_index(p, s, addr), map)) { + if (unlikely(s->decoder)) + s->decoder(p);...
2013 Jan 14
5
[PATCH] mm/slab: add a leak decoder callback
...name, size_t size, s->object_size = s->size = size; s->align = calculate_alignment(flags, align, size); s->ctor = ctor; + s->decoder = NULL; if (memcg_register_cache(memcg, s, parent_cache)) { kmem_cache_free(kmem_cache, s); diff --git a/mm/slub.c b/mm/slub.c index ba2ca53..0496a2b 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -3098,6 +3098,8 @@ static void list_slab_objects(struct kmem_cache *s, struct page *page, for_each_object(p, s, addr, page->objects) { if (!test_bit(slab_index(p, s, addr), map)) { + if (unlikely(s->decoder)) + s->decoder(p);...