5
0
mirror of git://git.proxmox.com/git/qemu-server.git synced 2025-01-10 01:18:01 +03:00

qemu_drive_mirror: correctly call block-job-cancel if block-job-complete fails

This commit is contained in:
Dietmar Maurer 2013-05-31 11:31:22 +02:00
parent 37eccdb5bc
commit 2fc6bc1722

View File

@ -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");
}
}
}