On Thu, Jun 01, 2023 at 01:51:34PM +0200, Paolo Bonzini wrote: > raw_co_getlength is called by handle_aiocb_write_zeroes, which is not a > coroutine > function. This is harmless because raw_co_getlength does not actually > suspend, > but in the interest of clarity make it a non-coroutine_fn that is just wrapped > by the coroutine_fn raw_co_getlength. Likewise, check_cache_dropped was only > a coroutine_fn because it called raw_co_getlength, so it can be made > non-coroutine > as well. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > block/file-posix.c | 29 +++++++++++++++++------------ > 1 file changed, 17 insertions(+), 12 deletions(-) >
> @@ -2696,7 +2696,7 @@ static int coroutine_fn > raw_co_truncate(BlockDriverState *bs, int64_t offset, > } > > if (S_ISCHR(st.st_mode) || S_ISBLK(st.st_mode)) { > - int64_t cur_length = raw_co_getlength(bs); > + int64_t cur_length = raw_getlength(bs); Shouldn't this one still call the raw_co_getlength() wrapper? > @@ -3245,7 +3250,7 @@ static int coroutine_fn > raw_co_block_status(BlockDriverState *bs, > * round up if necessary. > */ > if (!QEMU_IS_ALIGNED(*pnum, bs->bl.request_alignment)) { > - int64_t file_length = raw_co_getlength(bs); > + int64_t file_length = raw_getlength(bs); Likewise this one? > > static bool coroutine_fn cdrom_co_is_inserted(BlockDriverState *bs) > { > - return raw_co_getlength(bs) > 0; > + return raw_getlength(bs) > 0; > } and this one? -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org