Adds a new setting that controls whether guest-fsfreeze-{freeze,thaw}
commands should be issued. The previous setting was only taken into
account for backups.

In this commit we only use this setting for backups. The following two
commits will ensure the setting is used on replications, snapshots and
clones.

Signed-off-by: Maximiliano Sandoval <[email protected]>
---
 src/PVE/QemuServer.pm        | 11 +++++++++++
 src/PVE/VZDump/QemuServer.pm |  6 +++++-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/PVE/QemuServer.pm b/src/PVE/QemuServer.pm
index f263fedb..cdd44eb0 100644
--- a/src/PVE/QemuServer.pm
+++ b/src/PVE/QemuServer.pm
@@ -167,6 +167,17 @@ my $agent_fmt = {
         optional => 1,
         default => 1,
     },
+    'guest-fsfreeze' => {
+        description =>
+            "Whether to issue the guest-fsfreeze-freeze and 
guest-fsfreeze-thaw QEMU guest agent commands.\n\n"
+            . "Backups in snapshot mode, clones, snapshots without RAM, and 
replications normally issue a "
+            . "fsfreeze-fsfreeze-freeze and a respective thaw command when the 
QEMU Guest agent option is "
+            . "enabled on the guest's configuration and the agent is running 
inside of the guest.\n\n"
+            . "Takes preference over 'freeze-fs-on-backup' when set.",
+        type => 'boolean',
+        optional => 1,
+        default => 1,
+    },
     type => {
         description => "Select the agent type",
         type => 'string',
diff --git a/src/PVE/VZDump/QemuServer.pm b/src/PVE/VZDump/QemuServer.pm
index 5b94c369..2879639a 100644
--- a/src/PVE/VZDump/QemuServer.pm
+++ b/src/PVE/VZDump/QemuServer.pm
@@ -1096,7 +1096,11 @@ sub qga_fs_freeze {
         return;
     }
 
-    my $freeze = PVE::QemuServer::get_qga_key($self->{vmlist}->{$vmid}, 
'freeze-fs-on-backup') // 1;
+    my $freze_fs_on_backup =
+        PVE::QemuServer::get_qga_key($self->{vmlist}->{$vmid}, 
'freeze-fs-on-backup');
+    my $guest_fsfreeze = 
PVE::QemuServer::get_qga_key($self->{vmlist}->{$vmid}, 'guest-fsfreeze');
+
+    my $freeze = $guest_fsfreeze // $freze_fs_on_backup // 1;
     if (!$freeze) {
         $self->loginfo("skipping guest-agent 'fs-freeze', disabled in VM 
options");
         return;
-- 
2.47.2



_______________________________________________
pve-devel mailing list
[email protected]
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to