|
From: | Emanuele Giuseppe Esposito |
Subject: | Re: [RFC PATCH v2 06/25] include/block/block_int: split header into I/O and global state API |
Date: | Thu, 7 Oct 2021 13:30:42 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 |
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
[Prev in Thread] | Current Thread | [Next in Thread] |