On 09/17/2010 11:18 AM, Kevin Wolf wrote:
For copy on write (this includes any cluster allocations that don't fill the
whole cluster with one request), what qcow2 does looks like this:

1. Allocate new clusters (increase refcounts)
2. bdrv_flush
3. Copy sectors before the first touched one
4. bdrv_flush
5. Copy sectors after the last touched one
6. bdrv_flush
7. Update the L2 table to point to the new clusters

Step 2 and 4 are not necessary. This series moves flushes around to get all
of these three bdrv_flush calls merged into one.

Makes sense to me.

Regards,

Anthony Liguori

Kevin Wolf (4):
   qcow2: Move sync out of write_refcount_block_entries
   qcow2: Move sync out of update_refcount
   qcow2: Move sync out of qcow2_alloc_clusters
   qcow2: Get rid of additional sync on COW

  block/qcow2-cluster.c  |   11 ++++++++++-
  block/qcow2-refcount.c |   13 ++++++++++++-
  block/qcow2-snapshot.c |    2 ++
  3 files changed, 24 insertions(+), 2 deletions(-)



Reply via email to