summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--block/stream.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/block/stream.c b/block/stream.c
index 37c46525d2..c4f87dd5b6 100644
--- a/block/stream.c
+++ b/block/stream.c
@@ -122,6 +122,12 @@ wait:
              * known-unallocated area [sector_num, sector_num+n).  */
             ret = bdrv_co_is_allocated_above(bs->backing_hd, base,
                                              sector_num, n, &n);
+
+            /* Finish early if end of backing file has been reached */
+            if (ret == 0 && n == 0) {
+                n = end - sector_num;
+            }
+
             copy = (ret == 1);
         }
         trace_stream_one_iteration(s, sector_num, n, ret);