From 649cd608c109bc4ff813bcc3ee3c33d61b18d68a Mon Sep 17 00:00:00 2001 From: Milan Broz Date: Mon, 15 Jun 2009 12:15:23 +0000 Subject: [PATCH] Destroy toolcontext on exit in clvmd (fixes memory pool leaks). --- WHATS_NEW | 1 + daemons/clvmd/clvmd.c | 2 ++ daemons/clvmd/lvm-functions.c | 7 +++++++ daemons/clvmd/lvm-functions.h | 1 + 4 files changed, 11 insertions(+) diff --git a/WHATS_NEW b/WHATS_NEW index 9cb8ef77a..11e028748 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.48 - =============================== + Destroy toolcontext on exit in clvmd (fixes memory pool leaks). Fix lvconvert to not poll mirror if no conversion in progress. Fix memory leaks in toolcontext error path. Re-instate partial activation support in clustered mode. (2.02.40) diff --git a/daemons/clvmd/clvmd.c b/daemons/clvmd/clvmd.c index b34d26abf..b6c403477 100644 --- a/daemons/clvmd/clvmd.c +++ b/daemons/clvmd/clvmd.c @@ -481,6 +481,8 @@ int main(int argc, char *argv[]) /* Do some work */ main_loop(local_sock, cmd_timeout); + destroy_lvm(); + return 0; } diff --git a/daemons/clvmd/lvm-functions.c b/daemons/clvmd/lvm-functions.c index 4d181b2fc..078afd4ab 100644 --- a/daemons/clvmd/lvm-functions.c +++ b/daemons/clvmd/lvm-functions.c @@ -811,3 +811,10 @@ int init_lvm(int using_gulm) return 1; } + +void destroy_lvm(void) +{ + if (cmd) + destroy_toolcontext(cmd); + cmd = NULL; +} diff --git a/daemons/clvmd/lvm-functions.h b/daemons/clvmd/lvm-functions.h index 5da104c00..3fc3e0695 100644 --- a/daemons/clvmd/lvm-functions.h +++ b/daemons/clvmd/lvm-functions.h @@ -28,6 +28,7 @@ extern int post_lock_lv(unsigned char lock_cmd, unsigned char lock_flags, extern int do_check_lvm1(const char *vgname); extern int do_refresh_cache(void); extern int init_lvm(int using_gulm); +extern void destroy_lvm(void); extern void init_lvhash(void); extern void destroy_lvhash(void); extern void lvm_do_backup(const char *vgname); -- 2.43.5