qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 7/9] block: bdrv_create_file is a coroutine_fn


From: Paolo Bonzini
Subject: Re: [PATCH 7/9] block: bdrv_create_file is a coroutine_fn
Date: Thu, 3 Nov 2022 18:01:54 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.0

On 11/3/22 14:42, Emanuele Giuseppe Esposito wrote:
It is always called in coroutine_fn callbacks, therefore
it can directly call bdrv_co_create().

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
---
  block.c                            | 6 ++++--
  include/block/block-global-state.h | 3 ++-
  2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/block.c b/block.c
index eeb7a02aa2..e5e70acf15 100644
--- a/block.c
+++ b/block.c
@@ -527,6 +527,7 @@ static int coroutine_fn bdrv_co_create(BlockDriver *drv, 
const char *filename,
  {
      int ret;
      GLOBAL_STATE_CODE();
+    assert(qemu_in_coroutine());
      assert(*errp == NULL);
if (!drv->bdrv_co_create_opts) {
@@ -717,7 +718,8 @@ out:
      return ret;
  }
-int bdrv_create_file(const char *filename, QemuOpts *opts, Error **errp)
+int coroutine_fn bdrv_create_file(const char *filename, QemuOpts *opts,
+                                  Error **errp)
  {
      QemuOpts *protocol_opts;
      BlockDriver *drv;
@@ -758,7 +760,7 @@ int bdrv_create_file(const char *filename, QemuOpts *opts, 
Error **errp)
          goto out;
      }
- ret = bdrv_create(drv, filename, protocol_opts, errp);
+    ret = bdrv_co_create(drv, filename, protocol_opts, errp);
  out:
      qemu_opts_del(protocol_opts);
      qobject_unref(qdict);
diff --git a/include/block/block-global-state.h 
b/include/block/block-global-state.h
index 73795a0095..bd461f06a1 100644
--- a/include/block/block-global-state.h
+++ b/include/block/block-global-state.h
@@ -57,7 +57,8 @@ BlockDriver *bdrv_find_protocol(const char *filename,
  BlockDriver *bdrv_find_format(const char *format_name);
  int bdrv_create(BlockDriver *drv, const char* filename,
                  QemuOpts *opts, Error **errp);
-int bdrv_create_file(const char *filename, QemuOpts *opts, Error **errp);
+int coroutine_fn bdrv_create_file(const char *filename, QemuOpts *opts,
+                                  Error **errp);
BlockDriverState *bdrv_new(void);
  int bdrv_append(BlockDriverState *bs_new, BlockDriverState *bs_top,

Ah, I see now why patch 6 is needed, but please adjust the commit message.

Paolo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]