diff options
Diffstat (limited to 'tools/vgmerge.c')
-rw-r--r-- | tools/vgmerge.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/tools/vgmerge.c b/tools/vgmerge.c index adb00a0f..6b403bf4 100644 --- a/tools/vgmerge.c +++ b/tools/vgmerge.c @@ -151,13 +151,13 @@ static int _vgmerge_single(struct cmd_context *cmd, const char *vg_name_to, vg_from->name, vg_to->name); r = ECMD_PROCESSED; bad: - if (lock_vg_from_first) { - unlock_and_free_vg(cmd, vg_to, vg_name_to); - unlock_and_free_vg(cmd, vg_from, vg_name_from); - } else { - unlock_and_free_vg(cmd, vg_from, vg_name_from); - unlock_and_free_vg(cmd, vg_to, vg_name_to); - } + /* + * Note: as vg_to is referencing moved elements from vg_from + * the order of free_vg calls is mandatory. + */ + unlock_and_free_vg(cmd, vg_to, vg_name_to); + unlock_and_free_vg(cmd, vg_from, vg_name_from); + return r; } |