Am 03.11.2022 um 17:56 hat Paolo Bonzini geschrieben: > On 11/3/22 14:41, Emanuele Giuseppe Esposito wrote: > > block_copy_reset_unallocated and block_copy_is_cluster_allocated are > > only called by backup_run, a corotuine_fn itself.
s/corotuine_fn/coroutine_fn/ > > > > Same applies to block_copy_block_status, called by > > block_copy_dirty_clusters. > > > > Therefore mark them as coroutine too. > > > > Signed-off-by: Emanuele Giuseppe Esposito <eespo...@redhat.com> > > They don't need to be coroutine_fn. coroutine_fn is needed if you call > another coroutine_fn, but not if you _are only called_ by coroutine_fn. > There is nothing in these functions that needs them to be called from a > coroutine. > > The only exception is qemu_coroutine_yield(), which is the only leaf > coroutine_fn. I think it can make sense to have coroutine_fn as a documentation for things that are only ever called in a coroutine even if they could theoretically also work outside of coroutine context. Otherwise, when we want to introduce a coroutine_fn call somewhere, it's not only less obvious that it's even possible to do, but we'll have to add potentially many additional coroutine_fn annotations in the whole call chain in an otherwise unrelated patch. Kevin