On 25.06.2020 18:21, Max Reitz wrote:
Before HEAD^, we needed this because bdrv_co_flush() by itself would
only flush bs->file.  With HEAD^, bdrv_co_flush() will flush all
children on which a WRITE or WRITE_UNCHANGED permission has been taken.
Thus, vmdk no longer needs to do it itself.

Signed-off-by: Max Reitz <mre...@redhat.com>
---
  block/vmdk.c | 16 ----------------
  1 file changed, 16 deletions(-)

diff --git a/block/vmdk.c b/block/vmdk.c
index 62da465126..a23890e6ec 100644
--- a/block/vmdk.c
+++ b/block/vmdk.c
@@ -2802,21 +2802,6 @@ static void vmdk_close(BlockDriverState *bs)
      error_free(s->migration_blocker);
  }
-static coroutine_fn int vmdk_co_flush(BlockDriverState *bs)
-{
-    BDRVVmdkState *s = bs->opaque;
-    int i, err;
-    int ret = 0;
-
-    for (i = 0; i < s->num_extents; i++) {
-        err = bdrv_co_flush(s->extents[i].file->bs);
-        if (err < 0) {
-            ret = err;
-        }
-    }
-    return ret;
-}
-
  static int64_t vmdk_get_allocated_file_size(BlockDriverState *bs)
  {
      int i;
@@ -3075,7 +3060,6 @@ static BlockDriver bdrv_vmdk = {
      .bdrv_close                   = vmdk_close,
      .bdrv_co_create_opts          = vmdk_co_create_opts,
      .bdrv_co_create               = vmdk_co_create,
-    .bdrv_co_flush_to_disk        = vmdk_co_flush,


After HEAD^ applied, wouldn't we get an endless recursion in bdrv_co_flush() if the HEAD (this patch) had not been merged into HEAD^?

Andrey

      .bdrv_co_block_status         = vmdk_co_block_status,
      .bdrv_get_allocated_file_size = vmdk_get_allocated_file_size,
      .bdrv_has_zero_init           = vmdk_has_zero_init,

Reply via email to