block: Mark bdrv_filter_bs() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_filter_bs() need to hold a reader lock for the graph because
it calls bdrv_filter_child(), which accesses bs->file/backing.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-4-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Kevin Wolf 2023-10-27 17:53:12 +02:00
parent 067179868e
commit f5a3a270fe
5 changed files with 16 additions and 4 deletions

View file

@ -268,6 +268,8 @@ void stream_start(const char *job_id, BlockDriverState *bs,
assert(!bottom->drv->is_filter);
base_overlay = above_base = bottom;
} else {
GRAPH_RDLOCK_GUARD_MAINLOOP();
base_overlay = bdrv_find_overlay(bs, base);
if (!base_overlay) {
error_setg(errp, "'%s' is not in the backing chain of '%s'",