On 5/20/25 1:29 PM, Fiona Ebner wrote: > This is a small step in preparation to mark bdrv_drained_begin() as > GRAPH_UNLOCKED. More concretely, it is in preparatoin to move the > drain out of bdrv_change_aio_context() and marking that function as > GRAPH_RDLOCK. > > Signed-off-by: Fiona Ebner <f.eb...@proxmox.com> > --- > > New in v2. > > include/block/block-global-state.h | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/include/block/block-global-state.h > b/include/block/block-global-state.h > index 9be34b3c99..aad160956a 100644 > --- a/include/block/block-global-state.h > +++ b/include/block/block-global-state.h > @@ -274,9 +274,10 @@ int bdrv_debug_remove_breakpoint(BlockDriverState *bs, > const char *tag); > int bdrv_debug_resume(BlockDriverState *bs, const char *tag); > bool bdrv_debug_is_suspended(BlockDriverState *bs, const char *tag); > > -bool bdrv_child_change_aio_context(BdrvChild *c, AioContext *ctx, > - GHashTable *visited, Transaction *tran, > - Error **errp); > +bool GRAPH_RDLOCK > +bdrv_child_change_aio_context(BdrvChild *c, AioContext *ctx, > + GHashTable *visited, Transaction *tran, > + Error **errp); > int bdrv_try_change_aio_context(BlockDriverState *bs, AioContext *ctx, > BdrvChild *ignore_child, Error **errp); >
I think we might as well add the GRAPH_RDLOCK mark to the actual function definition in block.c for better readability. Andrey