On Fri, Oct 27, 2023 at 03:02:38PM -0500, Eric Blake wrote: > On Fri, Oct 27, 2023 at 05:53:12PM +0200, Kevin Wolf wrote: > > 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 <[email protected]> > > --- > > include/block/block-io.h | 2 +- > > include/block/block_int-io.h | 3 ++- > > block.c | 9 +++++++-- > > block/stream.c | 2 ++ > > migration/block-dirty-bitmap.c | 4 ++++ > > 5 files changed, 16 insertions(+), 4 deletions(-) > > > > diff --git a/include/block/block-io.h b/include/block/block-io.h > > index ad270b6ad2..58c4cf50a0 100644 > > --- a/include/block/block-io.h > > +++ b/include/block/block-io.h > > @@ -183,7 +183,7 @@ bdrv_co_eject(BlockDriverState *bs, bool eject_flag); > > > > const char *bdrv_get_format_name(BlockDriverState *bs); > > > > -bool bdrv_supports_compressed_writes(BlockDriverState *bs); > > +bool GRAPH_RDLOCK bdrv_supports_compressed_writes(BlockDriverState *bs); > > Unrelated change that belongs elsewhere in the series?
Answering myself: bdrv_supports_compressed_writes() calls bdrv_filter_bs(), and is itself called only by backup_job_create() which already uses GRAPH_RDLOCK_GUARD_MAINLOOP(). It wasn't obvious in the diff, but looking at the bigger context it makes sense. Maybe calling it out in the commit message would help future readers, though. > > Otherwise, > Reviewed-by: Eric Blake <[email protected]> R-b stands. -- Eric Blake, Principal Software Engineer Red Hat, Inc. Virtualization: qemu.org | libguestfs.org
