[v3,09/10] block: Fix bdrv_co_truncate overlap check
diff mbox series

Message ID 20180710063124.2263-10-famz@redhat.com
State New
Headers show
Series
  • block: Fix dst reading after tail copy offloading
Related show

Commit Message

Fam Zheng July 10, 2018, 6:31 a.m. UTC
If we are growing the image and potentially using preallocation for the
new area, we need to make sure that no write requests are made to the
"preallocated" area which is [@old_size, @offset), not
[@offset, offset * 2 - @old_size).

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
 block/io.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Patch
diff mbox series

diff --git a/block/io.c b/block/io.c
index 9687da1ce9..e3e2d5286d 100644
--- a/block/io.c
+++ b/block/io.c
@@ -3113,7 +3113,8 @@  int coroutine_fn bdrv_co_truncate(BdrvChild *child, int64_t offset,
     }
 
     bdrv_inc_in_flight(bs);
-    tracked_request_begin(&req, bs, offset, new_bytes, BDRV_TRACKED_TRUNCATE);
+    tracked_request_begin(&req, bs, offset - new_bytes, new_bytes,
+                          BDRV_TRACKED_TRUNCATE);
 
     /* If we are growing the image and potentially using preallocation for the
      * new area, we need to make sure that no write requests are made to it