--- /dev/null
+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);
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