vhdx: Require GRAPH_RDLOCK for accessing a node's parent list

This adds GRAPH_RDLOCK annotations to declare that functions accessing
the parent list of a node need to hold a reader lock for the graph. As
it happens, they already do.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20230504115750.54437-12-kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Kevin Wolf 2023-05-04 13:57:41 +02:00
parent 69aa0d371f
commit 622d30af99
1 changed files with 5 additions and 4 deletions

View File

@ -1506,8 +1506,9 @@ exit:
* There are 2 headers, and the highest sequence number will represent * There are 2 headers, and the highest sequence number will represent
* the active header * the active header
*/ */
static int vhdx_create_new_headers(BlockBackend *blk, uint64_t image_size, static int coroutine_fn GRAPH_RDLOCK
uint32_t log_size) vhdx_create_new_headers(BlockBackend *blk, uint64_t image_size,
uint32_t log_size)
{ {
BlockDriverState *bs = blk_bs(blk); BlockDriverState *bs = blk_bs(blk);
BdrvChild *child; BdrvChild *child;
@ -1897,8 +1898,8 @@ exit:
* .---- ~ ----------- ~ ------------ ~ ---------------- ~ -----------. * .---- ~ ----------- ~ ------------ ~ ---------------- ~ -----------.
* 1MB * 1MB
*/ */
static int coroutine_fn vhdx_co_create(BlockdevCreateOptions *opts, static int coroutine_fn GRAPH_RDLOCK
Error **errp) vhdx_co_create(BlockdevCreateOptions *opts, Error **errp)
{ {
BlockdevCreateOptionsVhdx *vhdx_opts; BlockdevCreateOptionsVhdx *vhdx_opts;
BlockBackend *blk = NULL; BlockBackend *blk = NULL;