mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-02-11 19:39:26 -07:00
qcow2: Mark qcow2_signal_corruption() and callers GRAPH_RDLOCK
This adds GRAPH_RDLOCK annotations to declare that callers of qcow2_signal_corruption() need to hold a reader lock for the graph because it calls bdrv_get_node_name(), which accesses the parents list of a node. 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: <20230929145157.45443-15-kwolf@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
bd131d6705
commit
0bb79c97fd
11 changed files with 249 additions and 191 deletions
|
|
@ -138,7 +138,7 @@ void GRAPH_RDLOCK
|
|||
bdrv_refresh_limits(BlockDriverState *bs, Transaction *tran, Error **errp);
|
||||
|
||||
int bdrv_commit(BlockDriverState *bs);
|
||||
int bdrv_make_empty(BdrvChild *c, Error **errp);
|
||||
int GRAPH_RDLOCK bdrv_make_empty(BdrvChild *c, Error **errp);
|
||||
int bdrv_change_backing_file(BlockDriverState *bs, const char *backing_file,
|
||||
const char *backing_fmt, bool warn);
|
||||
void bdrv_register(BlockDriver *bdrv);
|
||||
|
|
|
|||
|
|
@ -264,7 +264,7 @@ struct BlockDriver {
|
|||
BlockDriverAmendStatusCB *status_cb, void *cb_opaque,
|
||||
bool force, Error **errp);
|
||||
|
||||
int (*bdrv_make_empty)(BlockDriverState *bs);
|
||||
int GRAPH_RDLOCK_PTR (*bdrv_make_empty)(BlockDriverState *bs);
|
||||
|
||||
/*
|
||||
* Refreshes the bs->exact_filename field. If that is impossible,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue