On 5/13/22 23:26, Eric Blake wrote:
+int coroutine_fn blk_pwrite_zeroes(BlockBackend *blk, int64_t offset,
+ int64_t bytes, BdrvRequestFlags flags)
Tracking down all callers of blk_pwrite_zeroes is not as trivial as in
the previous patches. But the very first one I checked:
block.c: create_file_fallback_zero_first_sector()
is neither marked coroutine_fn, nor does it have the "if
(qemu_in_coroutine())" guard.
That one in particular _should_ be coroutine_fn;
bdrv_co_create_opts_simple is the only caller. This is probably a
limitation of the thread-safety annotations that I used to generate this
patchset: the compiler does limited inter-procedural analysis which for
us means missing some potential coroutine_fn additions.
But I agree that blk_pwrite_zeros shouldn't be a coroutine_fn, because
of fuse_fallocate and block_load. Alberto, this function is another
candidate for adding a blk_co_pwrite_zeros + a matching
generated_co_wrapper.
Paolo
And block.c is not touched in this
patch series, per the diffstat in 0/26. Am I missing something?