All of lore.kernel.org
 help / color / mirror / Atom feed
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
To: qemu-block@nongnu.org
Cc: "Kevin Wolf" <kwolf@redhat.com>, "Fam Zheng" <fam@euphon.net>,
	"Vladimir Sementsov-Ogievskiy" <vsementsov@virtuozzo.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Juan Quintela" <quintela@redhat.com>,
	qemu-devel@nongnu.org, "John Snow" <jsnow@redhat.com>,
	"Emanuele Giuseppe Esposito" <eesposit@redhat.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	"Hanna Reitz" <hreitz@redhat.com>,
	"Stefan Hajnoczi" <stefanha@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Eric Blake" <eblake@redhat.com>
Subject: [PATCH v3 22/25] block_int-common.h: assertions in the callers of BdrvChildClass function pointers
Date: Tue, 12 Oct 2021 04:49:03 -0400	[thread overview]
Message-ID: <20211012084906.2060507-23-eesposit@redhat.com> (raw)
In-Reply-To: <20211012084906.2060507-1-eesposit@redhat.com>

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 block.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/block.c b/block.c
index 40c4729b8d..da80e89ad4 100644
--- a/block.c
+++ b/block.c
@@ -1462,6 +1462,7 @@ const BdrvChildClass child_of_bds = {
 
 AioContext *bdrv_child_get_parent_aio_context(BdrvChild *c)
 {
+    assert(qemu_in_main_thread());
     return c->klass->get_parent_aio_context(c);
 }
 
@@ -2085,6 +2086,7 @@ bool bdrv_is_writable(BlockDriverState *bs)
 
 static char *bdrv_child_user_desc(BdrvChild *c)
 {
+    assert(qemu_in_main_thread());
     return c->klass->get_parent_desc(c);
 }
 
@@ -2718,6 +2720,7 @@ static void bdrv_replace_child_noperm(BdrvChild *child,
     int drain_saldo;
 
     assert(!child->frozen);
+    assert(qemu_in_main_thread());
 
     if (old_bs && new_bs) {
         assert(bdrv_get_aio_context(old_bs) == bdrv_get_aio_context(new_bs));
@@ -2806,6 +2809,8 @@ static void bdrv_attach_child_common_abort(void *opaque)
     BdrvChild *child = *s->child;
     BlockDriverState *bs = child->bs;
 
+    assert(qemu_in_main_thread());
+
     bdrv_replace_child_noperm(child, NULL);
 
     if (bdrv_get_aio_context(bs) != s->old_child_ctx) {
@@ -3164,6 +3169,7 @@ void bdrv_unref_child(BlockDriverState *parent, BdrvChild *child)
 static void bdrv_parent_cb_change_media(BlockDriverState *bs, bool load)
 {
     BdrvChild *c;
+    assert(qemu_in_main_thread());
     QLIST_FOREACH(c, &bs->parents, next_parent) {
         if (c->klass->change_media) {
             c->klass->change_media(c, load);
@@ -3655,6 +3661,7 @@ static BlockDriverState *bdrv_open_inherit(const char *filename,
 
     assert(!child_class || !flags);
     assert(!child_class == !parent);
+    assert(qemu_in_main_thread());
 
     if (reference) {
         bool options_non_empty = options ? qdict_size(options) : false;
@@ -4041,6 +4048,7 @@ static BlockReopenQueue *bdrv_reopen_queue_child(BlockReopenQueue *bs_queue,
      * important to avoid graph changes between the recursive queuing here and
      * bdrv_reopen_multiple(). */
     assert(bs->quiesce_counter > 0);
+    assert(qemu_in_main_thread());
 
     if (bs_queue == NULL) {
         bs_queue = g_new0(BlockReopenQueue, 1);
@@ -7097,6 +7105,7 @@ void bdrv_set_aio_context_ignore(BlockDriverState *bs,
     BdrvChild *child, *parent;
 
     g_assert(qemu_get_current_aio_context() == qemu_get_aio_context());
+    assert(qemu_in_main_thread());
 
     if (old_context == new_context) {
         return;
@@ -7173,6 +7182,7 @@ static bool bdrv_parent_can_set_aio_context(BdrvChild *c, AioContext *ctx,
         return true;
     }
     *ignore = g_slist_prepend(*ignore, c);
+    assert(qemu_in_main_thread());
 
     /*
      * A BdrvChildClass that doesn't handle AioContext changes cannot
-- 
2.27.0



  parent reply	other threads:[~2021-10-12  9:24 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-12  8:48 [PATCH v3 00/25] block layer: split block APIs in global state and I/O Emanuele Giuseppe Esposito
2021-10-12  8:48 ` [PATCH v3 01/25] main-loop.h: introduce qemu_in_main_thread() Emanuele Giuseppe Esposito
2021-10-12  8:48 ` [PATCH v3 02/25] include/block/block: split header into I/O and global state API Emanuele Giuseppe Esposito
2021-10-14 20:31   ` Eric Blake
2021-10-15 10:05     ` Emanuele Giuseppe Esposito
2021-10-21 14:11   ` Stefan Hajnoczi
2021-10-12  8:48 ` [PATCH v3 03/25] assertions for block " Emanuele Giuseppe Esposito
2021-10-12  8:48 ` [PATCH v3 04/25] include/sysemu/block-backend: split header into I/O and global state (GS) API Emanuele Giuseppe Esposito
2021-10-21 14:28   ` Stefan Hajnoczi
2021-10-12  8:48 ` [PATCH v3 05/25] block/block-backend.c: assertions for block-backend Emanuele Giuseppe Esposito
2021-10-12  8:48 ` [PATCH v3 06/25] include/block/block_int: split header into I/O and global state API Emanuele Giuseppe Esposito
2021-10-21 14:35   ` Stefan Hajnoczi
2021-10-12  8:48 ` [PATCH v3 07/25] assertions for block_int " Emanuele Giuseppe Esposito
2021-10-12  8:48 ` [PATCH v3 08/25] block: introduce assert_bdrv_graph_writable Emanuele Giuseppe Esposito
2021-10-12 11:07   ` Paolo Bonzini
2021-10-21 15:09   ` Stefan Hajnoczi
2021-10-12  8:48 ` [PATCH v3 09/25] include/block/blockjob_int.h: split header into I/O and GS API Emanuele Giuseppe Esposito
2021-10-12  8:48 ` [PATCH v3 10/25] assertions for blockjob_int.h Emanuele Giuseppe Esposito
2021-10-12  8:48 ` [PATCH v3 11/25] include/block/blockjob.h: global state API Emanuele Giuseppe Esposito
2021-10-21 14:35   ` Stefan Hajnoczi
2021-10-12  8:48 ` [PATCH v3 12/25] assertions for blockob.h " Emanuele Giuseppe Esposito
2021-10-12  8:48 ` [PATCH v3 13/25] include/sysemu/blockdev.h: move drive_add and inline drive_def Emanuele Giuseppe Esposito
2021-10-12 11:06   ` Paolo Bonzini
2021-10-21 15:08   ` Stefan Hajnoczi
2021-10-12  8:48 ` [PATCH v3 14/25] include/systemu/blockdev.h: global state API Emanuele Giuseppe Esposito
2021-10-12 11:07   ` Paolo Bonzini
2021-10-12  8:48 ` [PATCH v3 15/25] assertions for blockdev.h " Emanuele Giuseppe Esposito
2021-10-12  8:48 ` [PATCH v3 16/25] include/block/snapshot: global state API + assertions Emanuele Giuseppe Esposito
2021-10-12  8:48 ` [PATCH v3 17/25] block/copy-before-write.h: " Emanuele Giuseppe Esposito
2021-10-21 15:10   ` Stefan Hajnoczi
2021-10-12  8:48 ` [PATCH v3 18/25] block/coroutines: I/O API Emanuele Giuseppe Esposito
2021-10-12  8:49 ` [PATCH v3 19/25] block_int-common.h: split function pointers in BlockDriver Emanuele Giuseppe Esposito
2021-10-12  8:49 ` [PATCH v3 20/25] block_int-common.h: assertion in the callers of BlockDriver function pointers Emanuele Giuseppe Esposito
2021-10-12  8:49 ` [PATCH v3 21/25] block_int-common.h: split function pointers in BdrvChildClass Emanuele Giuseppe Esposito
2021-10-12  8:49 ` Emanuele Giuseppe Esposito [this message]
2021-10-12  8:49 ` [PATCH v3 23/25] block-backend-common.h: split function pointers in BlockDevOps Emanuele Giuseppe Esposito
2021-10-12  8:49 ` [PATCH v3 24/25] job.h: split function pointers in JobDriver Emanuele Giuseppe Esposito
2021-10-21 15:11   ` Stefan Hajnoczi
2021-10-12  8:49 ` [PATCH v3 25/25] job.h: assertions in the callers of JobDriver funcion pointers Emanuele Giuseppe Esposito

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211012084906.2060507-23-eesposit@redhat.com \
    --to=eesposit@redhat.com \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=eblake@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=fam@euphon.net \
    --cc=hreitz@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=richard.henderson@linaro.org \
    --cc=stefanha@redhat.com \
    --cc=vsementsov@virtuozzo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.