]> xenbits.xensource.com Git - libvirt.git/commitdiff
Fix stream abort upon I/O failure during migration
authorDaniel P. Berrange <berrange@redhat.com>
Fri, 2 Oct 2009 14:49:50 +0000 (15:49 +0100)
committerDaniel P. Berrange <berrange@redhat.com>
Fri, 9 Oct 2009 11:35:06 +0000 (12:35 +0100)
virStreamAbort is needed when the caller wishes to terminate
the stream early, not when virStreamSend fails.

* qemu/qemu_driver.c: Fix calling of virStreamAbort during
  tunnelled migration

src/qemu/qemu_driver.c

index 4a996a785d806afbc21f1972a17d38e340f2d8e8..ce37eb633918ac950c22c2502f8b6fb60a9f67cd 100644 (file)
@@ -6619,6 +6619,7 @@ static int doTunnelMigrate(virDomainPtr dom,
     for (;;) {
         bytes = saferead(client_sock, buffer, sizeof(buffer));
         if (bytes < 0) {
+            virStreamAbort(st);
             virReportSystemError(dconn, errno, "%s",
                                  _("tunnelled migration failed to read from qemu"));
             goto close_client_sock;
@@ -6630,7 +6631,6 @@ static int doTunnelMigrate(virDomainPtr dom,
         if (virStreamSend(st, buffer, bytes) < 0) {
             qemudReportError(dom->conn, dom, NULL, VIR_ERR_OPERATION_FAILED,
                              _("Failed to write migration data to remote libvirtd"));
-            virStreamAbort(st);
             goto close_client_sock;
         }
     }