]> git.proxmox.com Git - pve-qemu-kvm.git/commitdiff
backup: correctly propagate vma write errors in dump callback
authorDietmar Maurer <dietmar@proxmox.com>
Thu, 27 Mar 2014 07:51:12 +0000 (08:51 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Thu, 27 Mar 2014 07:51:12 +0000 (08:51 +0100)
debian/patches/backup-vma-correctly-propagate-error.patch [new file with mode: 0644]
debian/patches/series

diff --git a/debian/patches/backup-vma-correctly-propagate-error.patch b/debian/patches/backup-vma-correctly-propagate-error.patch
new file mode 100644 (file)
index 0000000..74f2dc5
--- /dev/null
@@ -0,0 +1,43 @@
+Index: new/vma-writer.c
+===================================================================
+--- new.orig/vma-writer.c      2014-03-27 08:48:32.000000000 +0100
++++ new/vma-writer.c   2014-03-27 08:48:33.000000000 +0100
+@@ -797,6 +797,13 @@
+     return transferred;
+ }
++void vma_writer_error_propagate(VmaWriter *vmaw, Error **errp)
++{
++    if (vmaw->status < 0 && *errp == NULL) {
++        error_setg(errp, "%s", vmaw->errmsg);
++    }
++}
++
+ int vma_writer_close(VmaWriter *vmaw, Error **errp)
+ {
+     g_assert(vmaw != NULL);
+Index: new/vma.h
+===================================================================
+--- new.orig/vma.h     2014-03-27 08:48:32.000000000 +0100
++++ new/vma.h  2014-03-27 08:48:33.000000000 +0100
+@@ -116,6 +116,7 @@
+ VmaWriter *vma_writer_create(const char *filename, uuid_t uuid, Error **errp);
+ int vma_writer_close(VmaWriter *vmaw, Error **errp);
++void vma_writer_error_propagate(VmaWriter *vmaw, Error **errp);
+ void vma_writer_destroy(VmaWriter *vmaw);
+ int vma_writer_add_config(VmaWriter *vmaw, const char *name, gpointer data,
+                           size_t len);
+Index: new/blockdev.c
+===================================================================
+--- new.orig/blockdev.c        2014-03-27 08:48:33.000000000 +0100
++++ new/blockdev.c     2014-03-27 08:49:50.000000000 +0100
+@@ -1796,7 +1796,7 @@
+                                buf, &zero_bytes);
+         if (ret < 0) {
+             if (!backup_state.error) {
+-                error_setg(&backup_state.error, "vma_writer_write error %d", ret);
++                vma_writer_error_propagate(backup_state.vmaw, &backup_state.error);
+             }
+             if (di->bs && di->bs->job) {
+                 block_job_cancel(di->bs->job);
index 5368bc3570f7a245e362627ce98576f15b6d509a..05c488e2a01245110997f8d84040b71d1890a53d 100644 (file)
@@ -20,5 +20,6 @@ backup-modify-job-api.patch
 backup-add-pve-monitor-commands.patch
 backup-add-dir-format.patch
 backup-do-not-return-errors-in-dump-callback.patch
+backup-vma-correctly-propagate-error.patch
 internal-snapshot-async.patch
 disable-efi-enable-pxe-roms.patch