Skip to content

Commit

Permalink
block: Fix bdrv_co_truncate overlap check
Browse files Browse the repository at this point in the history
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>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
  • Loading branch information
Fam Zheng authored and kevmw committed Jul 10, 2018
1 parent 0eb1e89 commit 5416a11
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion block/io.c
Expand Up @@ -3136,7 +3136,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
Expand Down

0 comments on commit 5416a11

Please sign in to comment.