提交 a91177c8 编写于 作者: C Cole Robinson

qemu: command: don't overwrite watchdog dump action

The watchdog cli refactoring in 4666b762 dropped the temporary variable
we use to convert to action=dump to action=pause for the qemu cli, and
stored the converted value in the domain structure. Our other watchdog
handling code then treated it as though the user requested action=pause,
which broke action=dump handling.

Revive the temporary variable to fix things.
上级 313272e0
...@@ -3350,6 +3350,7 @@ qemuBuildWatchdogCommandLine(virCommandPtr cmd, ...@@ -3350,6 +3350,7 @@ qemuBuildWatchdogCommandLine(virCommandPtr cmd,
virDomainWatchdogDefPtr watchdog = def->watchdog; virDomainWatchdogDefPtr watchdog = def->watchdog;
char *optstr; char *optstr;
const char *action; const char *action;
int actualAction;
if (!def->watchdog) if (!def->watchdog)
return 0; return 0;
...@@ -3376,10 +3377,14 @@ qemuBuildWatchdogCommandLine(virCommandPtr cmd, ...@@ -3376,10 +3377,14 @@ qemuBuildWatchdogCommandLine(virCommandPtr cmd,
virCommandAddArg(cmd, optstr); virCommandAddArg(cmd, optstr);
VIR_FREE(optstr); VIR_FREE(optstr);
/* qemu doesn't have a 'dump' action; we tell qemu to 'pause', then
libvirt listens for the watchdog event, and we perform the dump
ourselves. so convert 'dump' to 'pause' for the qemu cli */
actualAction = watchdog->action;
if (watchdog->action == VIR_DOMAIN_WATCHDOG_ACTION_DUMP) if (watchdog->action == VIR_DOMAIN_WATCHDOG_ACTION_DUMP)
watchdog->action = VIR_DOMAIN_WATCHDOG_ACTION_PAUSE; actualAction = VIR_DOMAIN_WATCHDOG_ACTION_PAUSE;
action = virDomainWatchdogActionTypeToString(watchdog->action); action = virDomainWatchdogActionTypeToString(actualAction);
if (!action) { if (!action) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("invalid watchdog action")); "%s", _("invalid watchdog action"));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册