[PATCH v2 25/27] virsh: Simplify @flags handing in cmdSetmem() and cmdSetmaxmem()

Peter Krempa pkrempa at redhat.com
Fri Dec 4 13:18:05 UTC 2020


On Thu, Dec 03, 2020 at 13:36:28 +0100, Michal Privoznik wrote:
> What code tries to achieve is that if no flags were provided to
> either 'setmem' or 'setmaxmem' commands then the old (no flags)
> API is called to be able to communicate with older daemons.
> Well, the code can be simplified a bit.

It's not quite the same though.

> 
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>  tools/virsh-domain.c | 14 ++++----------
>  1 file changed, 4 insertions(+), 10 deletions(-)
> 
> diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
> index 51a9fd90d1..eeeeaa8639 100644
> --- a/tools/virsh-domain.c
> +++ b/tools/virsh-domain.c

It's better visible in the second hunk ...

> @@ -9090,7 +9087,7 @@ cmdSetmaxmem(vshControl *ctl, const vshCmd *cmd)
>      bool config = vshCommandOptBool(cmd, "config");
>      bool live = vshCommandOptBool(cmd, "live");
>      bool current = vshCommandOptBool(cmd, "current");
> -    unsigned int flags = VIR_DOMAIN_AFFECT_CURRENT | VIR_DOMAIN_MEM_MAXIMUM;
> +    unsigned int flags = VIR_DOMAIN_AFFECT_CURRENT;

VIR_DOMAIN_AFFECT_CURRENT is 0

>      VSH_EXCLUSIVE_OPTIONS_VAR(current, live);
>      VSH_EXCLUSIVE_OPTIONS_VAR(current, config);
> @@ -9099,9 +9096,6 @@ cmdSetmaxmem(vshControl *ctl, const vshCmd *cmd)
>          flags |= VIR_DOMAIN_AFFECT_CONFIG;
>      if (live)
>          flags |= VIR_DOMAIN_AFFECT_LIVE;
> -    /* none of the options were specified */
> -    if (!current && !live && !config)
> -        flags = -1;

In the old code, if --current is used, this condition would be false ...

>  
>      if (!(dom = virshCommandOptDomain(ctl, cmd, NULL)))
>          return false;
> @@ -9118,13 +9112,13 @@ cmdSetmaxmem(vshControl *ctl, const vshCmd *cmd)
>      }
>      kibibytes = VIR_DIV_UP(bytes, 1024);
>  
> -    if (flags == -1) {
> +    if (flags == 0) {
>          if (virDomainSetMaxMemory(dom, kibibytes) != 0) {
>              vshError(ctl, "%s", _("Unable to change MaxMemorySize"));
>              ret = false;
>          }
>      } else {
> -        if (virDomainSetMemoryFlags(dom, kibibytes, flags) < 0) {

... and the new API is used.

> +        if (virDomainSetMemoryFlags(dom, kibibytes, flags | VIR_DOMAIN_MEM_MAXIMUM) < 0) {
>              vshError(ctl, "%s", _("Unable to change MaxMemorySize"));
>              ret = false;
>          }

With your change --current does nothing actually. Semantically it should
be the same though. Perhaps justify it better in the commit message.




More information about the libvir-list mailing list