All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com, qemu-block@nongnu.org, afaria@redhat.com
Subject: [PATCH 18/26] quorum: add missing coroutine_fn annotations
Date: Thu, 22 Sep 2022 10:49:16 +0200	[thread overview]
Message-ID: <20220922084924.201610-19-pbonzini@redhat.com> (raw)
In-Reply-To: <20220922084924.201610-1-pbonzini@redhat.com>

Callers of coroutine_fn must be coroutine_fn themselves, or the call
must be within "if (qemu_in_coroutine())".  Apply coroutine_fn to
functions where this holds.

Reviewed-by: Alberto Faria <afaria@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 block/quorum.c | 35 ++++++++++++++++++-----------------
 1 file changed, 18 insertions(+), 17 deletions(-)

diff --git a/block/quorum.c b/block/quorum.c
index f33f30d36b..5ff69d7443 100644
--- a/block/quorum.c
+++ b/block/quorum.c
@@ -161,11 +161,10 @@ static bool quorum_64bits_compare(QuorumVoteValue *a, QuorumVoteValue *b)
     return a->l == b->l;
 }
 
-static QuorumAIOCB *quorum_aio_get(BlockDriverState *bs,
-                                   QEMUIOVector *qiov,
-                                   uint64_t offset,
-                                   uint64_t bytes,
-                                   int flags)
+static QuorumAIOCB *coroutine_fn quorum_aio_get(BlockDriverState *bs,
+                                                QEMUIOVector *qiov,
+                                                uint64_t offset, uint64_t bytes,
+                                                int flags)
 {
     BDRVQuorumState *s = bs->opaque;
     QuorumAIOCB *acb = g_new(QuorumAIOCB, 1);
@@ -273,7 +272,7 @@ static void quorum_report_bad_versions(BDRVQuorumState *s,
     }
 }
 
-static void quorum_rewrite_entry(void *opaque)
+static void coroutine_fn quorum_rewrite_entry(void *opaque)
 {
     QuorumCo *co = opaque;
     QuorumAIOCB *acb = co->acb;
@@ -574,7 +573,7 @@ free_exit:
     quorum_free_vote_list(&acb->votes);
 }
 
-static void read_quorum_children_entry(void *opaque)
+static void coroutine_fn read_quorum_children_entry(void *opaque)
 {
     QuorumCo *co = opaque;
     QuorumAIOCB *acb = co->acb;
@@ -602,7 +601,7 @@ static void read_quorum_children_entry(void *opaque)
     }
 }
 
-static int read_quorum_children(QuorumAIOCB *acb)
+static int coroutine_fn read_quorum_children(QuorumAIOCB *acb)
 {
     BDRVQuorumState *s = acb->bs->opaque;
     int i;
@@ -643,7 +642,7 @@ static int read_quorum_children(QuorumAIOCB *acb)
     return acb->vote_ret;
 }
 
-static int read_fifo_child(QuorumAIOCB *acb)
+static int coroutine_fn read_fifo_child(QuorumAIOCB *acb)
 {
     BDRVQuorumState *s = acb->bs->opaque;
     int n, ret;
@@ -664,8 +663,9 @@ static int read_fifo_child(QuorumAIOCB *acb)
     return ret;
 }
 
-static int quorum_co_preadv(BlockDriverState *bs, int64_t offset, int64_t bytes,
-                            QEMUIOVector *qiov, BdrvRequestFlags flags)
+static int coroutine_fn quorum_co_preadv(BlockDriverState *bs,
+                                         int64_t offset, int64_t bytes,
+                                         QEMUIOVector *qiov, BdrvRequestFlags flags)
 {
     BDRVQuorumState *s = bs->opaque;
     QuorumAIOCB *acb = quorum_aio_get(bs, qiov, offset, bytes, flags);
@@ -684,7 +684,7 @@ static int quorum_co_preadv(BlockDriverState *bs, int64_t offset, int64_t bytes,
     return ret;
 }
 
-static void write_quorum_entry(void *opaque)
+static void coroutine_fn write_quorum_entry(void *opaque)
 {
     QuorumCo *co = opaque;
     QuorumAIOCB *acb = co->acb;
@@ -715,9 +715,9 @@ static void write_quorum_entry(void *opaque)
     }
 }
 
-static int quorum_co_pwritev(BlockDriverState *bs, int64_t offset,
-                             int64_t bytes, QEMUIOVector *qiov,
-                             BdrvRequestFlags flags)
+static int coroutine_fn quorum_co_pwritev(BlockDriverState *bs, int64_t offset,
+                                          int64_t bytes, QEMUIOVector *qiov,
+                                          BdrvRequestFlags flags)
 {
     BDRVQuorumState *s = bs->opaque;
     QuorumAIOCB *acb = quorum_aio_get(bs, qiov, offset, bytes, flags);
@@ -746,8 +746,9 @@ static int quorum_co_pwritev(BlockDriverState *bs, int64_t offset,
     return ret;
 }
 
-static int quorum_co_pwrite_zeroes(BlockDriverState *bs, int64_t offset,
-                                   int64_t bytes, BdrvRequestFlags flags)
+static int coroutine_fn quorum_co_pwrite_zeroes(BlockDriverState *bs,
+                                                int64_t offset, int64_t bytes,
+                                                BdrvRequestFlags flags)
 
 {
     return quorum_co_pwritev(bs, offset, bytes, NULL,
-- 
2.37.3



  parent reply	other threads:[~2022-09-22  9:56 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-22  8:48 [PATCH v3 00/26] block: fix coroutine_fn annotations Paolo Bonzini
2022-09-22  8:48 ` [PATCH 01/26] block/nvme: separate nvme_get_free_req cases for coroutine/non-coroutine context Paolo Bonzini
2022-09-22  8:49 ` [PATCH 02/26] block: add missing coroutine_fn annotations Paolo Bonzini
2022-09-22 15:11   ` Alberto Campinho Faria
2022-09-24 13:41     ` Paolo Bonzini
2022-10-05 18:11       ` Alberto Campinho Faria
2022-09-22  8:49 ` [PATCH 03/26] qcow2: remove incorrect " Paolo Bonzini
2022-09-22  8:49 ` [PATCH 04/26] nbd: " Paolo Bonzini
2022-09-22  8:49 ` [PATCH 05/26] coroutine: " Paolo Bonzini
2022-09-22  8:49 ` [PATCH 06/26] blkdebug: add missing " Paolo Bonzini
2022-10-05 10:32   ` Kevin Wolf
2022-10-05 21:11     ` Paolo Bonzini
2022-10-06  8:45       ` Kevin Wolf
2022-09-22  8:49 ` [PATCH 07/26] blkverify: " Paolo Bonzini
2022-09-22  8:49 ` [PATCH 08/26] file-posix: " Paolo Bonzini
2022-09-22  8:49 ` [PATCH 09/26] iscsi: " Paolo Bonzini
2022-09-22  8:49 ` [PATCH 10/26] nbd: " Paolo Bonzini
2022-09-22  8:49 ` [PATCH 11/26] nfs: " Paolo Bonzini
2022-09-22  8:49 ` [PATCH 12/26] nvme: " Paolo Bonzini
2022-09-22  8:49 ` [PATCH 13/26] parallels: " Paolo Bonzini
2022-10-05 10:44   ` Kevin Wolf
2022-09-22  8:49 ` [PATCH 14/26] qcow2: " Paolo Bonzini
2022-09-22  8:49 ` [PATCH 15/26] copy-before-write: " Paolo Bonzini
2022-09-22  8:49 ` [PATCH 16/26] curl: " Paolo Bonzini
2022-09-22  8:49 ` [PATCH 17/26] qed: " Paolo Bonzini
2022-09-22  8:49 ` Paolo Bonzini [this message]
2022-09-22  8:49 ` [PATCH 19/26] throttle: " Paolo Bonzini
2022-09-22  8:49 ` [PATCH 20/26] vmdk: " Paolo Bonzini
2022-09-22  8:49 ` [PATCH 21/26] job: " Paolo Bonzini
2022-09-22  8:49 ` [PATCH 22/26] coroutine-lock: " Paolo Bonzini
2022-09-22  8:49 ` [PATCH 23/26] raw-format: " Paolo Bonzini
2022-09-22  8:49 ` [PATCH 24/26] 9p: " Paolo Bonzini
2022-09-22  8:49 ` [PATCH 25/26] migration: " Paolo Bonzini
2022-09-22  8:49 ` [PATCH 26/26] test-coroutine: " Paolo Bonzini
2022-10-06 12:17 ` [PATCH v3 00/26] block: fix " Kevin Wolf
  -- strict thread matches above, loose matches on Subject: below --
2022-04-15 13:18 [PATCH 00/19] " Paolo Bonzini
2022-04-15 13:18 ` [PATCH 18/26] quorum: add missing " Paolo Bonzini

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=20220922084924.201610-19-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=afaria@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /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.