On Thu, Apr 19, 2012 at 05:14:20PM -0300, Marcelo Tosatti wrote:
> > There is one intended change in functionality in this patch, which is
> > that it allocates new clusters even when it could satisfy the first part
> > of the request with already allocated clusters. In order to check if
> > there is a problem with this scenario, the following patch should revert
> > to the old behaviour:
> > 
> > --- a/block/qcow2-cluster.c
> > +++ b/block/qcow2-cluster.c
> > @@ -847,7 +847,7 @@ again:
> >          keep_clusters = count_contiguous_clusters(nb_clusters,
> > s->cluster_size,
> >                                                    &l2_table[l2_index],
> > 0, 0);
> >          assert(keep_clusters <= nb_clusters);
> > -        nb_clusters -= keep_clusters;
> > +        nb_clusters = 0;
> >      } else {
> >          /* For the moment, overwrite compressed clusters one by one */
> >          if (cluster_offset & QCOW_OFLAG_COMPRESSED) {
> > 
> > The rest is meant to be a functionally equivalent rewrite of the old
> > code that was required in order to allow this change.
> 
> Testing.
Corruption gone with patch above.


Reply via email to