[libvirt] [PATCH] Make virsh setmaxmem balloon only when successful.
Chris Lalancette
clalance at redhat.com
Mon Jul 19 20:31:21 UTC 2010
On 07/07/10 - 05:35:39PM, Chris Lalancette wrote:
> After playing around with virsh setmaxmem for a bit,
> I ran into some surprising behavior; if a hypervisor does
> not support the virDomainSetMaxMemory() API, but the value
> specified for setmaxmem is less than the current amount
> of memory in the domain, the domain would be ballooned
> down *before* an error was reported.
>
> To make this more consistent, run virDomainSetMaxMemory()
> before trying to shrink; that way, if an error is thrown,
> no changes to the running domain are made.
>
> Signed-off-by: Chris Lalancette <clalance at redhat.com>
ping, any review on this?
> ---
> tools/virsh.c | 14 +++++++-------
> 1 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/tools/virsh.c b/tools/virsh.c
> index 0631590..97bfa20 100644
> --- a/tools/virsh.c
> +++ b/tools/virsh.c
> @@ -2529,19 +2529,19 @@ cmdSetmaxmem(vshControl *ctl, const vshCmd *cmd)
> return FALSE;
> }
>
> + if (virDomainSetMaxMemory(dom, kilobytes) != 0) {
> + vshError(ctl, "%s", _("Unable to change MaxMemorySize"));
> + virDomainFree(dom);
> + return FALSE;
> + }
> +
> if (kilobytes < info.memory) {
> if (virDomainSetMemory(dom, kilobytes) != 0) {
> - virDomainFree(dom);
> vshError(ctl, "%s", _("Unable to shrink current MemorySize"));
> - return FALSE;
> + ret = FALSE;
> }
> }
>
> - if (virDomainSetMaxMemory(dom, kilobytes) != 0) {
> - vshError(ctl, "%s", _("Unable to change MaxMemorySize"));
> - ret = FALSE;
> - }
> -
> virDomainFree(dom);
> return ret;
> }
> --
> 1.6.6.1
>
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
--
--
Chris Lalancette
More information about the libvir-list
mailing list