qemu-trivial
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-trivial] [PATCH] block: Fix is_allocated_above with resized files


From: Vishvananda Ishaya
Subject: [Qemu-trivial] [PATCH] block: Fix is_allocated_above with resized files
Date: Thu, 24 Jan 2013 10:02:08 -0800

In an image chain, if the base image is smaller than the current
image, we need to make sure to use the current images count of
unallocated blocks once we get to the end of the base image. Without
this change the code will return 0 blocks when it gets to the end
of the base image and mirror_run will fail its assertion.

Signed-off-by: Vishvananda Ishaya <address@hidden>
---
Fixes https://bugs.launchpad.net/qemu/+bug/1103868

 block.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/block.c b/block.c
index 6fa7c90..6474d9e 100644
--- a/block.c
+++ b/block.c
@@ -2831,7 +2831,9 @@ int coroutine_fn 
bdrv_co_is_allocated_above(BlockDriverState *top,
          *
          * [sector_num+x, nr_sectors] allocated.
          */
-        if (n > pnum_inter) {
+        if (n > pnum_inter &&
+            (intermediate == top ||
+             sector_num + pnum_inter < intermediate->total_sectors)) {
             n = pnum_inter;
         }
 
-- 
1.7.9.5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]