From fed0e904f2f678422767ba4b0b018751611ad7b3 Mon Sep 17 00:00:00 2001 From: Milan Broz Date: Tue, 24 Nov 2009 17:07:09 +0000 Subject: [PATCH] Add missing vg_release to pvs and pvdisplay to fix memory leak. --- WHATS_NEW | 1 + tools/pvdisplay.c | 7 ++++--- tools/reporter.c | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/WHATS_NEW b/WHATS_NEW index 7a94f5286..785939593 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.56 - ==================================== + Add missing vg_release to pvs and pvdisplay to fix memory leak. Do not try to unlock VG which is not locked in _process_one_vg. Move persistent filter dump to more appropriate place. Refresh device filters before full device rescan in lvmcache. diff --git a/tools/pvdisplay.c b/tools/pvdisplay.c index 531f37a79..47def172a 100644 --- a/tools/pvdisplay.c +++ b/tools/pvdisplay.c @@ -31,10 +31,11 @@ static int _pvdisplay_single(struct cmd_context *cmd, vg_name = pv_vg_name(pv); vg = vg_read(cmd, vg_name, (char *)&pv->vgid, 0); if (vg_read_error(vg)) { - log_error("Skipping volume group %s", vg_name); + log_error("Skipping volume group %s", vg_name); + vg_release(vg); /* FIXME If CLUSTERED should return ECMD_PROCESSED here */ - return ECMD_FAILED; - } + return ECMD_FAILED; + } /* * Replace possibly incomplete PV structure with new one diff --git a/tools/reporter.c b/tools/reporter.c index 056e71180..a552e2e9c 100644 --- a/tools/reporter.c +++ b/tools/reporter.c @@ -143,6 +143,7 @@ static int _pvs_single(struct cmd_context *cmd, struct volume_group *vg, vg = vg_read(cmd, vg_name, (char *)&pv->vgid, 0); if (vg_read_error(vg)) { log_error("Skipping volume group %s", vg_name); + vg_release(vg); return ECMD_FAILED; }