]> git.proxmox.com Git - pve-qemu-kvm.git/blame - debian/patches/backup-vma-restore-tolerate-a-size-difference-up-to-4M.patch
Two more fixes
[pve-qemu-kvm.git] / debian / patches / backup-vma-restore-tolerate-a-size-difference-up-to-4M.patch
CommitLineData
29119b0d
DM
1From 4ca68d0ccfd64f2fdc63ba44813bbafab8d90c81 Mon Sep 17 00:00:00 2001
2From: Dietmar Maurer <dietmar@proxmox.com>
3Date: Tue, 26 Mar 2013 06:21:16 +0100
4Subject: [PATCH v5 8/8] vma restore: tolerate a size difference up to 4M
5
6
7Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
8---
9 vma-reader.c | 8 +++++++-
10 1 files changed, 7 insertions(+), 1 deletions(-)
11
023017f8
DM
12Index: new/vma-reader.c
13===================================================================
3fe80761
DM
14--- new.orig/vma-reader.c 2014-07-16 12:01:32.000000000 +0200
15+++ new/vma-reader.c 2014-07-16 12:01:33.000000000 +0200
023017f8 16@@ -465,7 +465,13 @@
29119b0d
DM
17 assert(vmar->rstate[dev_id].bs == NULL);
18
19 int64_t size = bdrv_getlength(bs);
20- if (size != vmar->devinfo[dev_id].size) {
21+ int64_t size_diff = size - vmar->devinfo[dev_id].size;
22+
23+ /* storage types can have different size restrictions, so it
24+ * is not always possible to create an image with exact size.
25+ * So we tolerate a size difference up to 4MB.
26+ */
27+ if ((size_diff < 0) || (size_diff > 4*1024*1024)) {
28 error_setg(errp, "vma_reader_register_bs for stream %s failed - "
29 "unexpected size %zd != %zd", vmar->devinfo[dev_id].devname,
30 size, vmar->devinfo[dev_id].size);