Signed-off-by: Alexandre Derumier <aderum...@odiso.com>
---
 PVE/QemuServer.pm |   15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index df9ce74..a212183 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -3537,6 +3537,10 @@ sub vmconfig_hotplug_pending {
            } elsif ($opt eq 'cores') {
                die "skip\n" if !$hotplug;
                qemu_cpu_hotplug($vmid, $conf, 1);
+            } elsif ($opt eq 'balloon') {
+               #enable balloon device is not hotpluggable
+               die "skip\n" if ((defined($conf->{balloon})) && 
($conf->{balloon} == 0));
+            } elsif ($opt eq 'shares') {
            } elsif ($opt =~ m/^net(\d+)$/) {
                die "skip\n" if !$hotplug;
                vm_deviceunplug($vmid, $conf, $opt);
@@ -3574,10 +3578,15 @@ sub vmconfig_hotplug_pending {
                die "skip\n" if !$hotplug;
                qemu_cpu_hotplug($vmid, $conf, $value);
            } elsif ($opt eq 'balloon') {
-               die "skip\n" if !(defined($conf->{shares}) && ($conf->{shares} 
== 0));
+               # disable balloning device is not hotpluggable
+               die "skip\n" if ((defined($conf->{pending}->{balloon})) && 
($conf->{pending}->{balloon} == 0));
+               # enable balloning device is not hotpluggable
+               die "skip\n" if ((defined($conf->{balloon})) && 
($conf->{balloon} == 0));
                # allow manual ballooning if shares is set to zero
-               my $balloon = $conf->{pending}->{balloon} || $conf->{memory} || 
$defaults->{memory};
-               vm_mon_cmd($vmid, "balloon", value => $balloon*1024*1024);
+               if (!(defined($conf->{shares}) && ($conf->{shares} == 0))) {
+                   my $balloon = $conf->{pending}->{balloon} || 
$conf->{memory} || $defaults->{memory};
+                   vm_mon_cmd($vmid, "balloon", value => $balloon*1024*1024);
+               }
            } elsif ($opt =~ m/^net(\d+)$/) { 
                # some changes can be done without hotplug
                vmconfig_update_net($storecfg, $conf, $vmid, $opt, $value);
-- 
1.7.10.4

_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to