aboutsummaryrefslogtreecommitdiff
path: root/block/quorum.c
diff options
context:
space:
mode:
authorKevin Wolf <kwolf@redhat.com>2023-02-03 16:21:49 +0100
committerKevin Wolf <kwolf@redhat.com>2023-02-23 19:49:16 +0100
commit7b1fb72e2c1b9fbca17c13b753aee25f445cad24 (patch)
tree3a0241dd5be6136426d971c3a8b6f31ba1183052 /block/quorum.c
parentabaf8b750baef0337efb06c1d3465512b5d9b5dc (diff)
downloadqemu-7b1fb72e2c1b9fbca17c13b753aee25f445cad24.zip
qemu-7b1fb72e2c1b9fbca17c13b753aee25f445cad24.tar.gz
qemu-7b1fb72e2c1b9fbca17c13b753aee25f445cad24.tar.bz2
block: Mark read/write in block/io.c GRAPH_RDLOCK
This adds GRAPH_RDLOCK annotations to declare that callers of bdrv_driver_*() need to hold a reader lock for the graph. It doesn't add the annotation to public functions yet. For some places, we know that they will hold the lock, but we don't have the GRAPH_RDLOCK annotations yet. In this case, add assume_graph_lock() with a FIXME comment. These places will be removed once everything is properly annotated. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Message-Id: <20230203152202.49054-11-kwolf@redhat.com> Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block/quorum.c')
-rw-r--r--block/quorum.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/block/quorum.c b/block/quorum.c
index 02ae0d8..ef6cda2 100644
--- a/block/quorum.c
+++ b/block/quorum.c
@@ -718,16 +718,14 @@ static void coroutine_fn GRAPH_RDLOCK write_quorum_entry(void *opaque)
}
}
-static int coroutine_fn quorum_co_pwritev(BlockDriverState *bs, int64_t offset,
- int64_t bytes, QEMUIOVector *qiov,
- BdrvRequestFlags flags)
+static int coroutine_fn GRAPH_RDLOCK
+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);
int i, ret;
- assume_graph_lock(); /* FIXME */
-
for (i = 0; i < s->num_children; i++) {
Coroutine *co;
QuorumCo data = {