File libvirt-Fix-commit-29c1e913e459058c12d02b3f4b767b3dd428a498.patch of Package libvirt

From 81ef399723c4bc7e32f7ef4dc17c70467d18749a Mon Sep 17 00:00:00 2001
Message-Id: <81ef399723c4bc7e32f7ef4dc17c70467d18749a.1373885147.git.jdenemar@redhat.com>
From: Peter Krempa <pkrempa@redhat.com>
Date: Thu, 13 Jun 2013 15:52:15 +0200
Subject: [PATCH] Fix commit 29c1e913e459058c12d02b3f4b767b3dd428a498

https://bugzilla.redhat.com/show_bug.cgi?id=924400

This patch fixes changes done in commit 29c1e913e459058c12d02b3f4b767b3
that was pushed without implementing review feedback.

The flag introduced by the patch is changed to VIR_DOMAIN_VCPU_GUEST and
documentation makes the difference between regular hotplug and this new
functionality more explicit.

The virsh options that enable the use of the new flag are changed to
"--guest" and the documentation is fixed too.
(cherry picked from commit c2093b2aba47438152173c9d2dad5236738371f7)

Conflicts:
	tools/virsh-domain.c: conflicts originate from resolution of
    conflicts in the patch that is being fixed by this one
---
 include/libvirt/libvirt.h.in |  2 +-
 src/libvirt.c                | 18 +++++++++---------
 src/qemu/qemu_driver.c       |  8 ++++----
 tools/virsh-domain.c         | 36 ++++++++++++++++++------------------
 tools/virsh.pod              | 16 ++++++++--------
 5 files changed, 40 insertions(+), 40 deletions(-)

diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in
index dba12d1..f91ffeb 100644
--- a/include/libvirt/libvirt.h.in
+++ b/include/libvirt/libvirt.h.in
@@ -1920,7 +1920,7 @@ typedef enum {
 
     /* Additionally, these flags may be bitwise-OR'd in.  */
     VIR_DOMAIN_VCPU_MAXIMUM = (1 << 2), /* Max rather than current count */
-    VIR_DOMAIN_VCPU_AGENT   = (1 << 3), /* Use guest-agent based cpu hotplug */
+    VIR_DOMAIN_VCPU_GUEST   = (1 << 3), /* Modify state of the cpu in the guest */
 } virDomainVcpuFlags;
 
 int                     virDomainSetVcpus       (virDomainPtr domain,
diff --git a/src/libvirt.c b/src/libvirt.c
index 1571b92..f4d2fe7 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -8669,10 +8669,10 @@ error:
  * current virtual CPU limit, which must be less than or equal to the
  * maximum limit.
  *
- * If @flags includes VIR_DOMAIN_VCPU_AGENT, then a guest agent is used to
- * modify the number of processors used by a domain. This flag can only be used
- * with live guests and is incompatible with VIR_DOMAIN_VCPU_MAXIMUM as the
- * maximum limit can't be changed using the guest agent.
+ * If @flags includes VIR_DOMAIN_VCPU_GUEST, then the state of processors is
+ * modified inside the guest instead of the hypervisor. This flag can only
+ * be used with live guests and is incompatible with VIR_DOMAIN_VCPU_MAXIMUM.
+ * The usage of this flag may require a guest agent configured.
  *
  * Not all hypervisors can support all flag combinations.
  *
@@ -8699,11 +8699,11 @@ virDomainSetVcpusFlags(virDomainPtr domain, unsigned int nvcpus,
         goto error;
     }
 
-    if (flags & VIR_DOMAIN_VCPU_AGENT &&
+    if (flags & VIR_DOMAIN_VCPU_GUEST &&
         flags & VIR_DOMAIN_VCPU_MAXIMUM) {
         virReportInvalidArg(flags,
                             _("flags 'VIR_DOMAIN_VCPU_MAXIMUM' and "
-                              "'VIR_DOMAIN_VCPU_AGENT' in '%s' are mutually "
+                              "'VIR_DOMAIN_VCPU_GUEST' in '%s' are mutually "
                               "exclusive"), __FUNCTION__);
         goto error;
     }
@@ -8753,9 +8753,9 @@ error:
  * virtual CPU limit is queried.  Otherwise, this call queries the
  * current virtual CPU count.
  *
- * If @flags includes VIR_DOMAIN_VCPU_AGENT, then a guest agent is used to
- * modify the number of processors used by a domain. This flag is only usable on
- * live domains.
+ * If @flags includes VIR_DOMAIN_VCPU_GUEST, then the state of the processors
+ * is modified in the guest instead of the hypervisor. This flag is only usable
+ * on live domains. Guest agent may be needed for this flag to be available.
  *
  * Returns 0 in case of success, -1 in case of failure.
  */
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 5dd7a15..94d9edd 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -3996,7 +3996,7 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus,
     virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
                   VIR_DOMAIN_AFFECT_CONFIG |
                   VIR_DOMAIN_VCPU_MAXIMUM |
-                  VIR_DOMAIN_VCPU_AGENT, -1);
+                  VIR_DOMAIN_VCPU_GUEST, -1);
 
     if (!nvcpus || (unsigned short) nvcpus != nvcpus) {
         virReportError(VIR_ERR_INVALID_ARG,
@@ -4043,7 +4043,7 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus,
         goto endjob;
     }
 
-    if (flags & VIR_DOMAIN_VCPU_AGENT) {
+    if (flags & VIR_DOMAIN_VCPU_GUEST) {
         if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
             virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
                            _("chainging of maximum vCPU count isn't supported "
@@ -4745,7 +4745,7 @@ qemudDomainGetVcpusFlags(virDomainPtr dom, unsigned int flags)
     virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
                   VIR_DOMAIN_AFFECT_CONFIG |
                   VIR_DOMAIN_VCPU_MAXIMUM |
-                  VIR_DOMAIN_VCPU_AGENT, -1);
+                  VIR_DOMAIN_VCPU_GUEST, -1);
 
     qemuDriverLock(driver);
     vm = virDomainFindByUUID(&driver->domains, dom->uuid);
@@ -4767,7 +4767,7 @@ qemudDomainGetVcpusFlags(virDomainPtr dom, unsigned int flags)
     if (flags & VIR_DOMAIN_AFFECT_LIVE)
         def = vm->def;
 
-    if (flags & VIR_DOMAIN_VCPU_AGENT) {
+    if (flags & VIR_DOMAIN_VCPU_GUEST) {
         if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
             virReportError(VIR_ERR_INVALID_ARG, "%s",
                            _("vCPU count provided by the guest agent can only be "
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 06696fa..8f2e4d2 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -4301,9 +4301,9 @@ static const vshCmdOptDef opts_vcpucount[] = {
     {"config", VSH_OT_BOOL, 0, N_("get value to be used on next boot")},
     {"current", VSH_OT_BOOL, 0,
      N_("get value according to current domain state")},
-    {.name = "agent",
+    {.name = "guest",
      .type = VSH_OT_BOOL,
-     .help = N_("use guest agent based hotplug")
+     .help = N_("retrieve vcpu count from the guest instead of the hypervisor")
     },
     {NULL, 0, 0, NULL}
 };
@@ -4347,8 +4347,8 @@ vshCPUCountCollect(vshControl *ctl,
            last_error->code == VIR_ERR_INVALID_ARG))
          goto cleanup;
 
-     if (flags & VIR_DOMAIN_VCPU_AGENT) {
-         vshError(ctl, "%s", _("Failed to retrieve vCPU count via guest agent"));
+     if (flags & VIR_DOMAIN_VCPU_GUEST) {
+         vshError(ctl, "%s", _("Failed to retrieve vCPU count from the guest"));
          goto cleanup;
      }
 
@@ -4407,8 +4407,8 @@ cmdVcpucount(vshControl *ctl, const vshCmd *cmd)
     bool config = vshCommandOptBool(cmd, "config");
     bool live = vshCommandOptBool(cmd, "live");
     bool current = vshCommandOptBool(cmd, "current");
-    bool agent = vshCommandOptBool(cmd, "agent");
-    bool all = maximum + active + current + config + live + agent == 0;
+    bool guest = vshCommandOptBool(cmd, "guest");
+    bool all = maximum + active + current + config + live + guest == 0;
     unsigned int flags = VIR_DOMAIN_AFFECT_CURRENT;
 
     /* We want one of each pair of mutually exclusive options; that
@@ -4457,8 +4457,8 @@ cmdVcpucount(vshControl *ctl, const vshCmd *cmd)
         flags |= VIR_DOMAIN_AFFECT_CONFIG;
     if (maximum)
         flags |= VIR_DOMAIN_VCPU_MAXIMUM;
-    if (agent)
-        flags |= VIR_DOMAIN_VCPU_AGENT;
+    if (guest)
+        flags |= VIR_DOMAIN_VCPU_GUEST;
 
     if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
         return false;
@@ -4877,10 +4877,6 @@ static const vshCmdOptDef opts_emulatorpin[] = {
     {"config", VSH_OT_BOOL, 0, N_("affect next boot")},
     {"live", VSH_OT_BOOL, 0, N_("affect running domain")},
     {"current", VSH_OT_BOOL, 0, N_("affect current domain")},
-    {.name = "agent",
-     .type = VSH_OT_BOOL,
-     .help = N_("use guest agent based hotplug")
-    },
     {NULL, 0, 0, NULL}
 };
 
@@ -5065,6 +5061,10 @@ static const vshCmdOptDef opts_setvcpus[] = {
     {"config", VSH_OT_BOOL, 0, N_("affect next boot")},
     {"live", VSH_OT_BOOL, 0, N_("affect running domain")},
     {"current", VSH_OT_BOOL, 0, N_("affect current domain")},
+    {.name = "guest",
+     .type = VSH_OT_BOOL,
+     .help = N_("modify cpu state in the guest")
+    },
     {NULL, 0, 0, NULL}
 };
 
@@ -5078,7 +5078,7 @@ cmdSetvcpus(vshControl *ctl, const vshCmd *cmd)
     bool config = vshCommandOptBool(cmd, "config");
     bool live = vshCommandOptBool(cmd, "live");
     bool current = vshCommandOptBool(cmd, "current");
-    bool agent = vshCommandOptBool(cmd, "agent");
+    bool guest = vshCommandOptBool(cmd, "guest");
     unsigned int flags = 0;
 
     if (current) {
@@ -5093,17 +5093,17 @@ cmdSetvcpus(vshControl *ctl, const vshCmd *cmd)
         if (live)
             flags |= VIR_DOMAIN_AFFECT_LIVE;
         /* neither option is specified */
-        if (!live && !config && !maximum && !agent)
+        if (!live && !config && !maximum && !guest)
             flags = -1;
     }
 
-    if (agent && config) {
-        vshError(ctl, "%s", _("--agent and --current are exclusive"));
+    if (guest && config) {
+        vshError(ctl, "%s", _("--guest and --current are exclusive"));
         return false;
     }
 
-    if (agent)
-        flags |= VIR_DOMAIN_VCPU_AGENT;
+    if (guest)
+        flags |= VIR_DOMAIN_VCPU_GUEST;
 
     if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
         return false;
diff --git a/tools/virsh.pod b/tools/virsh.pod
index 6f56e57..d9626b1 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -1506,7 +1506,7 @@ exclusive. If no flag is specified, behavior is different depending
 on hypervisor.
 
 =item B<setvcpus> I<domain> I<count> [I<--maximum>] [[I<--config>]
-[I<--live>] | [I<--current>]] [I<--agent>]
+[I<--live>] | [I<--current>]] [I<--guest>]
 
 Change the number of virtual CPUs active in a guest domain.  By default,
 this command works on active guest domains.  To change the settings for an
@@ -1532,9 +1532,9 @@ is up to the hypervisor whether the I<--config> flag is also assumed, and
 therefore whether the XML configuration is adjusted to make the change
 persistent.
 
-If I<--agent> is specified, then guest agent commands are used to retrieve the
-count of available vCPUs from the perspective of the guest. This flag is usable
-only for live domains.
+If I<--guest> is specified, then the count of cpus is modified in the guest
+instead of the hypervisor. This flag is usable only for live domains
+and may require guest agent to be configured in the guest.
 
 The I<--maximum> flag controls the maximum number of virtual cpus that can
 be hot-plugged the next time the domain is booted.  As such, it must only be
@@ -1658,7 +1658,7 @@ NOTE: For an inactive domain, the domain name or UUID must be used as the
 I<domain>.
 
 =item B<vcpucount> I<domain>  [{I<--maximum> | I<--active>}
-{I<--config> | I<--live> | I<--current>}] [I<--agent>]
+{I<--config> | I<--live> | I<--current>}] [I<--guest>]
 
 Print information about the virtual cpu counts of the given
 I<domain>.  If no flags are specified, all possible counts are
@@ -1676,9 +1676,9 @@ lists current values, and I<--current> queries according to the current
 state of the domain (corresponding to I<--live> if running, or
 I<--config> if inactive); these three flags are mutually exclusive.
 
-If I<--agent> is specified, then guest agent commands are used to retrieve the
-count of available vCPUs from the perspective of the guest. This flag is usable
-only for live domains.
+If I<--guest> is specified, then the count of cpus is reported from
+the perspective of the guest. This flag is usable only for live domains
+and may require guest agent to be configured in the guest.
 
 =item B<vcpuinfo> I<domain>
 
-- 
1.8.3.2

openSUSE Build Service is sponsored by