[lvm-devel] [PATCH 10/13] Refactor vgmerge - introduce lock_vg_from_first flag.
Dave Wysochanski
dwysocha at redhat.com
Thu Aug 13 21:57:27 UTC 2009
Should be no functional change.
Signed-off-by: Dave Wysochanski <dwysocha at redhat.com>
---
tools/vgmerge.c | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/tools/vgmerge.c b/tools/vgmerge.c
index 37f6bd7..39032fb 100644
--- a/tools/vgmerge.c
+++ b/tools/vgmerge.c
@@ -21,6 +21,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;
+ int lock_vg_from_first = 0;
if (!strcmp(vg_name_to, vg_name_from)) {
log_error("Duplicate volume group name \"%s\"", vg_name_from);
@@ -116,8 +117,13 @@ static int _vgmerge_single(struct cmd_context *cmd, const char *vg_name_to,
vg_from->name, vg_to->name);
r = ECMD_PROCESSED;
bad:
- unlock_and_release_vg(cmd, vg_from, vg_name_from);
- unlock_and_release_vg(cmd, vg_to, vg_name_to);
+ if (lock_vg_from_first) {
+ unlock_and_release_vg(cmd, vg_to, vg_name_to);
+ unlock_and_release_vg(cmd, vg_from, vg_name_from);
+ } else {
+ unlock_and_release_vg(cmd, vg_from, vg_name_from);
+ unlock_and_release_vg(cmd, vg_to, vg_name_to);
+ }
return r;
}
--
1.6.0.6
More information about the lvm-devel
mailing list