1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-03-10 16:58:47 +03:00

Change vgmerge behavior to open/lock first vg based on alphabetical ordering.

This enforces our alphabetical lock ordering rules for vgmerge.


Author: Dave Wysochanski <dwysocha@redhat.com>
This commit is contained in:
Dave Wysochanski 2009-09-02 21:28:43 +00:00
parent 7c86e3909c
commit 3d9c2d86b0

View File

@ -41,14 +41,28 @@ static int _vgmerge_single(struct cmd_context *cmd, const char *vg_name_to,
return ECMD_FAILED;
}
vg_to = _vgmerge_vg_read(cmd, vg_name_to);
if (!vg_to)
return ECMD_FAILED;
if (strcmp(vg_name_to, vg_name_from) > 0)
lock_vg_from_first = 1;
vg_from = _vgmerge_vg_read(cmd, vg_name_from);
if (!vg_from) {
unlock_and_release_vg(cmd, vg_to, vg_name_to);
return ECMD_FAILED;
if (lock_vg_from_first) {
vg_from = _vgmerge_vg_read(cmd, vg_name_from);
if (!vg_from)
return ECMD_FAILED;
vg_to = _vgmerge_vg_read(cmd, vg_name_to);
if (!vg_to) {
unlock_and_release_vg(cmd, vg_from, vg_name_from);
return ECMD_FAILED;
}
} else {
vg_to = _vgmerge_vg_read(cmd, vg_name_to);
if (!vg_to)
return ECMD_FAILED;
vg_from = _vgmerge_vg_read(cmd, vg_name_from);
if (!vg_from) {
unlock_and_release_vg(cmd, vg_to, vg_name_to);
return ECMD_FAILED;
}
}
if (!vgs_are_compatible(cmd, vg_from, vg_to))