block: Mark bdrv_has_zero_init() and callers GRAPH_RDLOCK
This adds GRAPH_RDLOCK annotations to declare that callers of bdrv_has_zero_init() need to hold a reader lock for the graph because it calls bdrv_filter_bs(), which accesses bs->file/backing. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Message-ID: <20231027155333.420094-3-kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
221caadcc5
commit
067179868e
11 changed files with 22 additions and 12 deletions
|
|
@ -2099,7 +2099,9 @@ static int convert_do_copy(ImgConvertState *s)
|
|||
/* Check whether we have zero initialisation or can get it efficiently */
|
||||
if (!s->has_zero_init && s->target_is_new && s->min_sparse &&
|
||||
!s->target_has_backing) {
|
||||
bdrv_graph_rdlock_main_loop();
|
||||
s->has_zero_init = bdrv_has_zero_init(blk_bs(s->target));
|
||||
bdrv_graph_rdunlock_main_loop();
|
||||
}
|
||||
|
||||
/* Allocate buffer for copied data. For compressed images, only one cluster
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue