]> git.proxmox.com Git - pve-qemu-kvm.git/blame - debian/patches/pve/0018-backup-vma-correctly-propagate-error.patch
bump version to 2.9.0-1~rc2+5
[pve-qemu-kvm.git] / debian / patches / pve / 0018-backup-vma-correctly-propagate-error.patch
CommitLineData
87ba737b 1From 17b2fc7ed399325558b891e13e104214568fd154 Mon Sep 17 00:00:00 2001
ca0fe5f5
WB
2From: Wolfgang Bumiller <w.bumiller@proxmox.com>
3Date: Wed, 9 Dec 2015 15:39:36 +0100
adeb0c7a 4Subject: [PATCH 18/48] backup: vma: correctly propagate error
ca0fe5f5
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
87ba737b 13index 4b073d4..6253ef1 100644
ca0fe5f5
WB
14--- a/blockdev.c
15+++ b/blockdev.c
1a91ab45 16@@ -3043,7 +3043,7 @@ static int pvebackup_dump_cb(void *opaque, BlockBackend *target,
ca0fe5f5
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
68a30562 26index b0cf529..689e988 100644
ca0fe5f5
WB
27--- a/vma-writer.c
28+++ b/vma-writer.c
68a30562 29@@ -792,6 +792,13 @@ vma_writer_write(VmaWriter *vmaw, uint8_t dev_id, int64_t cluster_num,
ca0fe5f5
WB
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
44index 9bb6ea4..98377e4 100644
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--
562.1.4
57