aboutsummaryrefslogtreecommitdiff
path: root/block/parallels-ext.c
diff options
context:
space:
mode:
authorKevin Wolf <kwolf@redhat.com>2023-10-27 17:53:33 +0200
committerKevin Wolf <kwolf@redhat.com>2023-11-08 17:56:18 +0100
commit1f051dcbdf2e4b6f518db731c84e304b2b9d15ce (patch)
treec96479cc14a8cc90443bc4f7fe46afbfa76a4006 /block/parallels-ext.c
parenta4b740db5ee3db0d5b76a6ea9895875763453187 (diff)
downloadqemu-1f051dcbdf2e4b6f518db731c84e304b2b9d15ce.zip
qemu-1f051dcbdf2e4b6f518db731c84e304b2b9d15ce.tar.gz
qemu-1f051dcbdf2e4b6f518db731c84e304b2b9d15ce.tar.bz2
block: Protect bs->file with graph_lock
Almost all functions that access bs->file already take the graph lock now. Add locking to the remaining users and finally annotate the struct field itself as protected by the graph lock. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Message-ID: <20231027155333.420094-25-kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block/parallels-ext.c')
-rw-r--r--block/parallels-ext.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/block/parallels-ext.c b/block/parallels-ext.c
index 4d8ecf5..b4e14c8 100644
--- a/block/parallels-ext.c
+++ b/block/parallels-ext.c
@@ -59,11 +59,10 @@ typedef struct ParallelsDirtyBitmapFeature {
} QEMU_PACKED ParallelsDirtyBitmapFeature;
/* Given L1 table read bitmap data from the image and populate @bitmap */
-static int parallels_load_bitmap_data(BlockDriverState *bs,
- const uint64_t *l1_table,
- uint32_t l1_size,
- BdrvDirtyBitmap *bitmap,
- Error **errp)
+static int GRAPH_RDLOCK
+parallels_load_bitmap_data(BlockDriverState *bs, const uint64_t *l1_table,
+ uint32_t l1_size, BdrvDirtyBitmap *bitmap,
+ Error **errp)
{
BDRVParallelsState *s = bs->opaque;
int ret = 0;
@@ -120,10 +119,9 @@ finish:
* @data buffer (of @data_size size) is the Dirty bitmaps feature which
* consists of ParallelsDirtyBitmapFeature followed by L1 table.
*/
-static BdrvDirtyBitmap *parallels_load_bitmap(BlockDriverState *bs,
- uint8_t *data,
- size_t data_size,
- Error **errp)
+static BdrvDirtyBitmap * GRAPH_RDLOCK
+parallels_load_bitmap(BlockDriverState *bs, uint8_t *data, size_t data_size,
+ Error **errp)
{
int ret;
ParallelsDirtyBitmapFeature bf;
@@ -183,8 +181,9 @@ static BdrvDirtyBitmap *parallels_load_bitmap(BlockDriverState *bs,
return bitmap;
}
-static int parallels_parse_format_extension(BlockDriverState *bs,
- uint8_t *ext_cluster, Error **errp)
+static int GRAPH_RDLOCK
+parallels_parse_format_extension(BlockDriverState *bs, uint8_t *ext_cluster,
+ Error **errp)
{
BDRVParallelsState *s = bs->opaque;
int ret;