From 2fc6bc17229563d0ba87891103fe3a25da68b189 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Fri, 31 May 2013 11:31:22 +0200 Subject: [PATCH] qemu_drive_mirror: correctly call block-job-cancel if block-job-complete fails --- PVE/QemuServer.pm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 50fbf69b..090cfb29 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -4688,18 +4688,20 @@ sub qemu_drive_mirror { $old_len = $stat->{offset}; sleep 1; } + + if ($vmiddst == $vmid) { + # switch the disk if source and destination are on the same guest + vm_mon_cmd($vmid, "block-job-complete", device => "drive-$drive"); + } }; if (my $err = $@) { eval { vm_mon_cmd($vmid, "block-job-cancel", device => "drive-$drive"); }; die "mirroring error: $err"; } - if ($vmiddst != $vmid){ - #if we clone a disk for a new target vm, we don't switch the disk + if ($vmiddst != $vmid) { + # if we clone a disk for a new target vm, we don't switch the disk vm_mon_cmd($vmid, "block-job-cancel", device => "drive-$drive"); - } else { - #if source and destination are on the same guest - vm_mon_cmd($vmid, "block-job-complete", device => "drive-$drive"); } } }