We use ploop_delta->file_preallocated_area_start when we allocate a new cluster to determine if the place we allocate from is from preallocation area or not. And depending on that we either zero the area or not, so wrong detection can lead to garbage data to appear in the cluster which was thought of as a zero cluster.
https://virtuozzo.atlassian.net/browse/VSTOR-110285 Signed-off-by: Pavel Tikhomirov <ptikhomi...@virtuozzo.com> --- drivers/md/dm-ploop-map.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/md/dm-ploop-map.c b/drivers/md/dm-ploop-map.c index f21a3ae5ba4a..40eca0a6f83f 100644 --- a/drivers/md/dm-ploop-map.c +++ b/drivers/md/dm-ploop-map.c @@ -1332,6 +1332,9 @@ static int ploop_allocate_cluster(struct ploop *ploop, u32 *dst_clu, struct file } } + if (end > top->file_preallocated_area_start) + top->file_preallocated_area_start = end; + spin_unlock_irqrestore(&ploop->bat_lock, flags); return 0; -- 2.50.0 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel