]> git.proxmox.com Git - pve-qemu.git/blame - debian/patches/pve/0018-backup-vma-correctly-propagate-error.patch
update to 2.9.0-rc5
[pve-qemu.git] / debian / patches / pve / 0018-backup-vma-correctly-propagate-error.patch
CommitLineData
076b4026 1From c736903d735b9a7a7c6ca80c486d9064df5b2737 Mon Sep 17 00:00:00 2001
95259824
WB
2From: Wolfgang Bumiller <w.bumiller@proxmox.com>
3Date: Wed, 9 Dec 2015 15:39:36 +0100
45169293 4Subject: [PATCH 18/49] backup: vma: correctly propagate error
95259824
WB
5
6---
7 blockdev.c | 2 +-
8 vma-writer.c | 7 +++++++
9 vma.h | 1 +
10 3 files changed, 9 insertions(+), 1 deletion(-)
11
12diff --git a/blockdev.c b/blockdev.c
076b4026 13index 5017c276e6..d3aef2cc83 100644
95259824
WB
14--- a/blockdev.c
15+++ b/blockdev.c
a544966d 16@@ -3043,7 +3043,7 @@ static int pvebackup_dump_cb(void *opaque, BlockBackend *target,
95259824
WB
17 buf, &zero_bytes);
18 if (ret < 0) {
19 if (!backup_state.error) {
20- error_setg(&backup_state.error, "vma_writer_write error %d", ret);
21+ vma_writer_error_propagate(backup_state.vmaw, &backup_state.error);
22 }
23 if (di->bs && di->bs->job) {
24 block_job_cancel(di->bs->job);
25diff --git a/vma-writer.c b/vma-writer.c
45169293 26index b0cf529125..689e988423 100644
95259824
WB
27--- a/vma-writer.c
28+++ b/vma-writer.c
29@@ -792,6 +792,13 @@ vma_writer_write(VmaWriter *vmaw, uint8_t dev_id, int64_t cluster_num,
30 return transferred;
31 }
32
33+void vma_writer_error_propagate(VmaWriter *vmaw, Error **errp)
34+{
35+ if (vmaw->status < 0 && *errp == NULL) {
36+ error_setg(errp, "%s", vmaw->errmsg);
37+ }
38+}
39+
40 int vma_writer_close(VmaWriter *vmaw, Error **errp)
41 {
42 g_assert(vmaw != NULL);
43diff --git a/vma.h b/vma.h
45169293 44index 9bb6ea4f69..98377e473e 100644
95259824
WB
45--- a/vma.h
46+++ b/vma.h
47@@ -116,6 +116,7 @@ typedef struct VmaDeviceInfo {
48
49 VmaWriter *vma_writer_create(const char *filename, uuid_t uuid, Error **errp);
50 int vma_writer_close(VmaWriter *vmaw, Error **errp);
51+void vma_writer_error_propagate(VmaWriter *vmaw, Error **errp);
52 void vma_writer_destroy(VmaWriter *vmaw);
53 int vma_writer_add_config(VmaWriter *vmaw, const char *name, gpointer data,
54 size_t len);
55--
45169293 562.11.0
95259824 57