mirror of
https://git.proxmox.com/git/qemu-server
synced 2025-05-03 12:42:56 +00:00
snapshot_delete: save changes after each drive snapshot removal
This commit is contained in:
parent
3ee28e388a
commit
2009f324ac
@ -3806,6 +3806,7 @@ sub snapshot_delete {
|
|||||||
my $unused = [];
|
my $unused = [];
|
||||||
|
|
||||||
my $updatefn = sub {
|
my $updatefn = sub {
|
||||||
|
my ($remove_drive) = @_;
|
||||||
|
|
||||||
my $conf = load_config($vmid);
|
my $conf = load_config($vmid);
|
||||||
|
|
||||||
@ -3828,6 +3829,13 @@ sub snapshot_delete {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($remove_drive) {
|
||||||
|
my $drive = parse_drive($remove_drive, $snap->{$remove_drive});
|
||||||
|
my $volid = $drive->{file};
|
||||||
|
delete $snap->{$remove_drive};
|
||||||
|
add_unused_volume($conf, $volid);
|
||||||
|
}
|
||||||
|
|
||||||
if ($prepare) {
|
if ($prepare) {
|
||||||
$snap->{snapstate} = 'delete';
|
$snap->{snapstate} = 'delete';
|
||||||
} else {
|
} else {
|
||||||
@ -3852,16 +3860,20 @@ sub snapshot_delete {
|
|||||||
my ($ds, $drive) = @_;
|
my ($ds, $drive) = @_;
|
||||||
|
|
||||||
return if drive_is_cdrom($drive);
|
return if drive_is_cdrom($drive);
|
||||||
return if $drivehash && !$drivehash->{$ds};
|
|
||||||
|
|
||||||
my $volid = $drive->{file};
|
my $volid = $drive->{file};
|
||||||
my $device = "drive-$ds";
|
my $device = "drive-$ds";
|
||||||
|
|
||||||
eval { qemu_volume_snapshot_delete($vmid, $device, $storecfg, $volid, $snapname); };
|
if (!$drivehash || $drivehash->{$ds}) {
|
||||||
if (my $err = $@) {
|
eval { qemu_volume_snapshot_delete($vmid, $device, $storecfg, $volid, $snapname); };
|
||||||
die $err if !$force;
|
if (my $err = $@) {
|
||||||
warn $err;
|
die $err if !$force;
|
||||||
|
warn $err;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# save changes (remove drive fron snapshot)
|
||||||
|
lock_config($vmid, $updatefn, $ds) if !$force;
|
||||||
push @$unused, $volid;
|
push @$unused, $volid;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user