On 07/10/2021 12:52, Stefan Hajnoczi wrote:
On Tue, Oct 05, 2021 at 10:31:56AM -0400, Emanuele Giuseppe Esposito wrote:
+int coroutine_fn bdrv_co_copy_range_from(BdrvChild *src, int64_t src_offset,
+ BdrvChild *dst, int64_t dst_offset,
+ int64_t bytes,
+ BdrvRequestFlags read_flags,
+ BdrvRequestFlags write_flags);
+int coroutine_fn bdrv_co_copy_range_to(BdrvChild *src, int64_t src_offset,
+ BdrvChild *dst, int64_t dst_offset,
+ int64_t bytes,
+ BdrvRequestFlags read_flags,
+ BdrvRequestFlags write_flags);
These look like I/O APIs to me. Are they in the GS API because only
qemu-img.c call copy_range? I thought SCSI emulation might call it too,
but grep says otherwise.
SCSI (iscsi.c) implements the function pointer
(*bdrv_co_copy_range_from/to), but does not call the function itself.
However, later in the patches I put the function pointer as I/O.
These two functions are only tested by test-replication and thus are
always under BQL when tested. But after looking at them again, and since
they internally use only I/O APIs, I think we can move them to the I/O API.
Thank you,
Emanuele