]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Fix a regression of domjobabort
authorOsier Yang <jyang@redhat.com>
Mon, 1 Aug 2011 11:41:07 +0000 (19:41 +0800)
committerOsier Yang <jyang@redhat.com>
Mon, 1 Aug 2011 11:41:07 +0000 (19:41 +0800)
Introduced by f9a837da73a11ef, the condition is not changed after
the else clause is removed. So now it quit with "domain is not
running" when the domain is running. However, when the domain is
not running, it reports "no job is active".

How to reproduce:

1)
% virsh start $domain
% virsh domjobabort $domain
error: Requested operation is not valid: domain is not running

2)
% virsh destroy $domain
% virsh domjobabort $domain
error: Requested operation is not valid: no job is active on the domain

3)
% virsh save $domain /tmp/$domain.save

Before above commands finished, try to abort job in another terminal

% virsh domabortjob $domain
error: Requested operation is not valid: domain is not running

src/qemu/qemu_driver.c

index b673fd5fb5e5735640e62d69fcf32a2629226398..cce1c686e306787558bfa20ed631d1a53f60e327 100644 (file)
@@ -8065,7 +8065,7 @@ static int qemuDomainAbortJob(virDomainPtr dom) {
     if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_ABORT) < 0)
         goto cleanup;
 
-    if (virDomainObjIsActive(vm)) {
+    if (!virDomainObjIsActive(vm)) {
         qemuReportError(VIR_ERR_OPERATION_INVALID,
                         "%s", _("domain is not running"));
         goto endjob;