[pve-devel] [PATCH v2 guest-common 04/10] fix 2682: make sure configuration file is up-to-date for lock_config-variants

Fabian Ebner f.ebner at proxmox.com
Tue May 5 10:27:17 CEST 2020


See [0] for the details. The call tree for the variants is
lock_config -> lock_config_full -> lock_config_mode
so it is sufficient to adapt lock_config_mode.

[0]: https://bugzilla.proxmox.com/show_bug.cgi?id=2682

Suggested-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
Signed-off-by: Fabian Ebner <f.ebner at proxmox.com>
---

Note that @param is passed along to lock_file_full but also already
used directly in the closure. This (cosmetic) issue is addressed as
part of Fabian G.'s patch #9

 PVE/AbstractConfig.pm | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/PVE/AbstractConfig.pm b/PVE/AbstractConfig.pm
index f1b395c..15368de 100644
--- a/PVE/AbstractConfig.pm
+++ b/PVE/AbstractConfig.pm
@@ -292,7 +292,13 @@ sub lock_config_mode {
 
     my $filename = $class->config_file_lock($vmid);
 
-    my $res = lock_file_full($filename, $timeout, $shared, $code, @param);
+    # make sure configuration file is up-to-date
+    my $realcode = sub {
+	PVE::Cluster::cfs_update();
+	$code->(@param);
+    };
+
+    my $res = lock_file_full($filename, $timeout, $shared, $realcode, @param);
 
     die $@ if $@;
 
-- 
2.20.1





More information about the pve-devel mailing list