]> git.proxmox.com Git - qemu-server.git/commitdiff
backup: never try to freeze in stop mode backup
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Sun, 3 May 2020 09:13:36 +0000 (11:13 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Sun, 3 May 2020 09:13:38 +0000 (11:13 +0200)
VM was can be true for stop mode backup, we cannot check the "is VM
currently running" as that doesn't tells us anything (could be the
backup process), so check the mode also..

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
PVE/VZDump/QemuServer.pm

index 38dcdb111a42427971e4cfa47635eec48530d134..46079b88c9d7241c155fa8e394fd90b33374336f 100644 (file)
@@ -389,7 +389,7 @@ sub archive_pbs {
            die "interrupted by signal\n";
        };
 
-       my $fs_frozen = $self->qga_fs_freeze($vmid);
+       my $fs_frozen = $self->qga_fs_freeze($task, $vmid);
 
        my $params = {
            format => "pbs",
@@ -572,7 +572,7 @@ sub archive_vma {
 
        $qmpclient->queue_cmd($vmid, $add_fd_cb, 'getfd', fd => $outfileno, fdname => "backup");
 
-       my $fs_frozen = $self->qga_fs_freeze($vmid);
+       my $fs_frozen = $self->qga_fs_freeze($task, $vmid);
 
        eval { $qmpclient->queue_execute(30) };
        my $qmperr = $@;
@@ -640,8 +640,8 @@ sub _get_task_devlist {
 }
 
 sub qga_fs_freeze {
-    my ($self, $vmid) = @_;
-    return if !$self->{vmlist}->{$vmid}->{agent} || !$self->{vm_was_running};
+    my ($self, $task, $vmid) = @_;
+    return if !$self->{vmlist}->{$vmid}->{agent} || $task->{mode} eq 'stop' || !$self->{vm_was_running};
 
     if (!PVE::QemuServer::qga_check_running($vmid, 1)) {
        $self->loginfo("skipping guest-agent 'fs-freeze', agent configured but not running?");