From ab4e74cc38359a1e909febe31e8440a2908bd10e Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Wed, 10 Jul 2013 15:04:07 -0700 Subject: [PATCH] Fix bogus kmem leak warning Commit 5c7a036 correctly relocated the creation of a taskq and the registraction of the kmem_cache_shrinker after the initialization of the kmem tracking code. However, the cleanup of these structures was not done before the leak checks in spl_kmem_fini(). This resulted in an incorrect 'kmem leaked' warning even though there was no actual leak. Signed-off-by: Brian Behlendorf Closes zfsonlinux/zfs#1569 --- module/spl/spl-kmem.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/module/spl/spl-kmem.c b/module/spl/spl-kmem.c index f982ed0..8547fa7 100644 --- a/module/spl/spl-kmem.c +++ b/module/spl/spl-kmem.c @@ -2439,6 +2439,11 @@ spl_kmem_init(void) void spl_kmem_fini(void) { + SENTRY; + + spl_unregister_shrinker(&spl_kmem_cache_shrinker); + taskq_destroy(spl_kmem_cache_taskq); + #ifdef DEBUG_KMEM /* Display all unreclaimed memory addresses, including the * allocation size and the first few bytes of what's located @@ -2458,10 +2463,6 @@ spl_kmem_fini(void) spl_kmem_fini_tracking(&kmem_list, &kmem_lock); spl_kmem_fini_tracking(&vmem_list, &vmem_lock); #endif /* DEBUG_KMEM */ - SENTRY; - - spl_unregister_shrinker(&spl_kmem_cache_shrinker); - taskq_destroy(spl_kmem_cache_taskq); SEXIT; } -- 2.39.2