From b98add7571338af84056df7a3c067334c4a0814f Mon Sep 17 00:00:00 2001 From: Pavel Hrdina Date: Tue, 14 Nov 2017 17:28:48 +0100 Subject: [PATCH] qemu: taint domain if virDomainQemuAgentCommand API is used This is similar to the virDomainQemuMonitorCommand API, it can change the domain state in a way that libvirt may not understand. Signed-off-by: Pavel Hrdina --- src/conf/domain_conf.c | 3 ++- src/conf/domain_conf.h | 1 + src/qemu/qemu_driver.c | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 62d0a1683a..0e4f76f066 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -100,7 +100,8 @@ VIR_ENUM_IMPL(virDomainTaint, VIR_DOMAIN_TAINT_LAST, "host-cpu", "hook-script", "cdrom-passthrough", - "custom-dtb"); + "custom-dtb", + "custom-ga-command"); VIR_ENUM_IMPL(virDomainVirt, VIR_DOMAIN_VIRT_LAST, "none", diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 41443a02c9..3ac24ab32b 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2456,6 +2456,7 @@ typedef enum { VIR_DOMAIN_TAINT_HOOK, /* Domain (possibly) changed via hook script */ VIR_DOMAIN_TAINT_CDROM_PASSTHROUGH,/* CDROM passthrough */ VIR_DOMAIN_TAINT_CUSTOM_DTB, /* Custom device tree blob was specified */ + VIR_DOMAIN_TAINT_CUSTOM_GA_COMMAND, /* Custom guest agent command */ VIR_DOMAIN_TAINT_LAST } virDomainTaintFlags; diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 6132bc4a9a..3a0e3b6cec 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -18737,6 +18737,8 @@ qemuDomainQemuAgentCommand(virDomainPtr domain, if (!qemuDomainAgentAvailable(vm, true)) goto endjob; + qemuDomainObjTaint(driver, vm, VIR_DOMAIN_TAINT_CUSTOM_GA_COMMAND, NULL); + agent = qemuDomainObjEnterAgent(vm); ret = qemuAgentArbitraryCommand(agent, cmd, &result, timeout); qemuDomainObjExitAgent(vm, agent);