Co-authored-by: Sri Ramanujam <sramanujam(a)datto.com>
Signed-off-by: Matt Coleman <matt(a)datto.com>
---
src/hyperv/hyperv_driver.c | 24 +++++++++++++++++++-----
1 file changed, 19 insertions(+), 5 deletions(-)
diff --git a/src/hyperv/hyperv_driver.c b/src/hyperv/hyperv_driver.c
index e779b67d00..6d7bc4b80f 100644
--- a/src/hyperv/hyperv_driver.c
+++ b/src/hyperv/hyperv_driver.c
@@ -933,8 +933,8 @@ hypervDomainGetMaxMemory(virDomainPtr domain)
static int
-hypervDomainSetMemoryFlags(virDomainPtr domain, unsigned long memory,
- unsigned int flags)
+hypervDomainSetMemoryProperty(virDomainPtr domain, unsigned long memory,
+ const char* propertyName)
{
int result = -1;
char uuid_string[VIR_UUID_STRING_BUFLEN];
@@ -946,8 +946,6 @@ hypervDomainSetMemoryFlags(virDomainPtr domain, unsigned long memory,
Msvm_MemorySettingData *memsd = NULL;
g_autoptr(GHashTable) memResource = NULL;
- virCheckFlags(0, -1);
-
memory_str = g_strdup_printf("%lu", memory_mb);
virUUIDFormat(domain->uuid, uuid_string);
@@ -969,7 +967,7 @@ hypervDomainSetMemoryFlags(virDomainPtr domain, unsigned long memory,
if (!memResource)
goto cleanup;
- if (hypervSetEmbeddedProperty(memResource, "VirtualQuantity", memory_str)
< 0)
+ if (hypervSetEmbeddedProperty(memResource, propertyName, memory_str) < 0)
goto cleanup;
if (hypervSetEmbeddedProperty(memResource, "InstanceID",
memsd->data->InstanceID) < 0)
@@ -995,6 +993,21 @@ hypervDomainSetMemoryFlags(virDomainPtr domain, unsigned long
memory,
}
+static int
+hypervDomainSetMaxMemory(virDomainPtr domain, unsigned long memory)
+{
+ return hypervDomainSetMemoryProperty(domain, memory, "Limit");
+}
+
+
+static int
+hypervDomainSetMemoryFlags(virDomainPtr domain, unsigned long memory, unsigned int
flags)
+{
+ virCheckFlags(0, -1);
+ return hypervDomainSetMemoryProperty(domain, memory, "VirtualQuantity");
+}
+
+
static int
hypervDomainSetMemory(virDomainPtr domain, unsigned long memory)
{
@@ -1793,6 +1806,7 @@ static virHypervisorDriver hypervHypervisorDriver = {
.domainDestroyFlags = hypervDomainDestroyFlags, /* 0.9.5 */
.domainGetOSType = hypervDomainGetOSType, /* 0.9.5 */
.domainGetMaxMemory = hypervDomainGetMaxMemory, /* 6.10.0 */
+ .domainSetMaxMemory = hypervDomainSetMaxMemory, /* 6.10.0 */
.domainSetMemory = hypervDomainSetMemory, /* 3.6.0 */
.domainSetMemoryFlags = hypervDomainSetMemoryFlags, /* 3.6.0 */
.domainGetInfo = hypervDomainGetInfo, /* 0.9.5 */
--
2.27.0