]>
Commit | Line | Data |
---|---|---|
29119b0d DM |
1 | From 4ca68d0ccfd64f2fdc63ba44813bbafab8d90c81 Mon Sep 17 00:00:00 2001 |
2 | From: Dietmar Maurer <dietmar@proxmox.com> | |
3 | Date: Tue, 26 Mar 2013 06:21:16 +0100 | |
4 | Subject: [PATCH v5 8/8] vma restore: tolerate a size difference up to 4M | |
5 | ||
6 | ||
7 | Signed-off-by: Dietmar Maurer <dietmar@proxmox.com> | |
8 | --- | |
9 | vma-reader.c | 8 +++++++- | |
10 | 1 files changed, 7 insertions(+), 1 deletions(-) | |
11 | ||
023017f8 DM |
12 | Index: 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); |