[pve-devel] [PATCH qemu-server 3/4] hotplug_pending: remove redundant write/load config calls

Oguz Bektas o.bektas at proxmox.com
Tue Oct 29 14:19:09 CET 2019


instead of writing the config after every change, we can do it once for
all the changes at the end to avoid redundant i/o.
we also don't need to load_config after writing fastplug changes.

Signed-off-by: Oguz Bektas <o.bektas at proxmox.com>
---
 PVE/QemuServer.pm | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index d92040b..3855f6e 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -4842,7 +4842,6 @@ sub vmconfig_hotplug_pending {
 
     if ($changes) {
 	PVE::QemuConfig->write_config($vmid, $conf);
-	$conf = PVE::QemuConfig->load_config($vmid); # update/reload
     }
 
     my $hotplug_features = parse_hotplug_features(defined($conf->{hotplug}) ? $conf->{hotplug} : '1');
@@ -4903,11 +4902,8 @@ sub vmconfig_hotplug_pending {
 	if (my $err = $@) {
 	    $add_hotplug_error->($opt, $err) if $err ne "skip\n";
 	} else {
-	    # save new config if hotplug was successful
 	    delete $conf->{$opt};
 	    PVE::QemuConfig->remove_from_pending_delete($conf, $opt);
-	    PVE::QemuConfig->write_config($vmid, $conf);
-	    $conf = PVE::QemuConfig->load_config($vmid); # update/reload
 	}
     }
 
@@ -4992,13 +4988,12 @@ sub vmconfig_hotplug_pending {
 	if (my $err = $@) {
 	    $add_hotplug_error->($opt, $err) if $err ne "skip\n";
 	} else {
-	    # save new config if hotplug was successful
 	    $conf->{$opt} = $value;
 	    delete $conf->{pending}->{$opt};
-	    PVE::QemuConfig->write_config($vmid, $conf);
-	    $conf = PVE::QemuConfig->load_config($vmid); # update/reload
 	}
     }
+
+    PVE::QemuConfig->write_config($vmid, $conf);
 }
 
 sub try_deallocate_drive {
-- 
2.20.1




More information about the pve-devel mailing list