if (blockdev)
ret = qemuMonitorJobCancel(priv->mon, job->name, false);
else
- ret = qemuMonitorBlockJobCancel(priv->mon, job->name);
+ ret = qemuMonitorBlockJobCancel(priv->mon, job->name, false);
if (qemuDomainObjExitMonitor(driver, vm) < 0) {
ret = -1;
goto endjob;
if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
return -1;
- rv = qemuMonitorBlockJobCancel(priv->mon, job->name);
+ rv = qemuMonitorBlockJobCancel(priv->mon, job->name, false);
if (qemuDomainObjExitMonitor(driver, vm) < 0 || rv < 0)
return -1;
int
qemuMonitorBlockJobCancel(qemuMonitor *mon,
- const char *jobname)
+ const char *jobname,
+ bool force)
{
- VIR_DEBUG("jobname=%s", jobname);
+ VIR_DEBUG("jobname=%s force=%d", jobname, force);
QEMU_CHECK_MONITOR(mon);
- return qemuMonitorJSONBlockJobCancel(mon, jobname);
+ return qemuMonitorJSONBlockJobCancel(mon, jobname, force);
}
ATTRIBUTE_NONNULL(2);
int qemuMonitorBlockJobCancel(qemuMonitor *mon,
- const char *jobname)
+ const char *jobname,
+ bool force)
ATTRIBUTE_NONNULL(2);
int qemuMonitorBlockJobSetSpeed(qemuMonitor *mon,
int
qemuMonitorJSONBlockJobCancel(qemuMonitor *mon,
- const char *jobname)
+ const char *jobname,
+ bool force)
{
g_autoptr(virJSONValue) cmd = NULL;
g_autoptr(virJSONValue) reply = NULL;
if (!(cmd = qemuMonitorJSONMakeCommand("block-job-cancel",
"s:device", jobname,
+ "B:force", force,
NULL)))
return -1;
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
int qemuMonitorJSONBlockJobCancel(qemuMonitor *mon,
- const char *jobname)
+ const char *jobname,
+ bool force)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
int
GEN_TEST_FUNC(qemuMonitorJSONJobDismiss, "jobname")
GEN_TEST_FUNC(qemuMonitorJSONJobCancel, "jobname", false)
GEN_TEST_FUNC(qemuMonitorJSONJobComplete, "jobname")
-GEN_TEST_FUNC(qemuMonitorJSONBlockJobCancel, "jobname")
+GEN_TEST_FUNC(qemuMonitorJSONBlockJobCancel, "jobname", true)
static int
testQemuMonitorJSONqemuMonitorJSONNBDServerStart(const void *opaque)