From 043b13625b7eed0a52a80d46b7b6eda48cfdf82e Mon Sep 17 00:00:00 2001 From: Milan Broz Date: Fri, 10 Apr 2009 10:01:38 +0000 Subject: Properly release VG memory pool in all CLI tools. --- tools/vgmerge.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'tools/vgmerge.c') diff --git a/tools/vgmerge.c b/tools/vgmerge.c index c48fe0b6..c847c7ef 100644 --- a/tools/vgmerge.c +++ b/tools/vgmerge.c @@ -20,6 +20,7 @@ static int _vgmerge_single(struct cmd_context *cmd, const char *vg_name_to, { struct volume_group *vg_to, *vg_from; struct lv_list *lvl1, *lvl2; + int r = ECMD_FAILED; if (!strcmp(vg_name_to, vg_name_from)) { log_error("Duplicate volume group name \"%s\"", vg_name_from); @@ -37,7 +38,7 @@ static int _vgmerge_single(struct cmd_context *cmd, const char *vg_name_to, LCK_VG_WRITE | LCK_NONBLOCK, CLUSTERED | EXPORTED_VG | LVM_WRITE, CORRECT_INCONSISTENT | FAIL_INCONSISTENT))) { - unlock_vg(cmd, vg_name_to); + unlock_release_vg(cmd, vg_to, vg_name_to); return ECMD_FAILED; } @@ -114,18 +115,13 @@ static int _vgmerge_single(struct cmd_context *cmd, const char *vg_name_to, /* FIXME Remove /dev/vgfrom */ backup(vg_to); - - unlock_vg(cmd, vg_name_from); - unlock_vg(cmd, vg_name_to); - log_print("Volume group \"%s\" successfully merged into \"%s\"", vg_from->name, vg_to->name); - return ECMD_PROCESSED; - - bad: - unlock_vg(cmd, vg_name_from); - unlock_vg(cmd, vg_name_to); - return ECMD_FAILED; + r = ECMD_PROCESSED; +bad: + unlock_release_vg(cmd, vg_from, vg_name_from); + unlock_release_vg(cmd, vg_to, vg_name_to); + return r; } int vgmerge(struct cmd_context *cmd, int argc, char **argv) -- cgit