[pve-devel] [PATCH 4/7] fix balloon pending update
Alexandre Derumier
aderumier at odiso.com
Fri Jan 2 15:16:01 CET 2015
Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
---
PVE/QemuServer.pm | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 2f93d13..4f6bed9 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
More information about the pve-devel
mailing list