On Thu, Mar 29, 2018 at 07:09:06PM +0800, Fam Zheng wrote: > [Posting a preview RFC for the general idea discussion and internal API > review. > Libiscsi support is being worked on in the meantime.] > > This series introduces block layer API for copy offloading and makes use of it > in qemu-img convert. > > For now we implemented the operation in local file protocol with > copy_file_range(2). Besides that it's possible to add similar to iscsi, nfs > and potentially more. > > As far as its usage goes, in addition to qemu-img convert, we can emulate > offloading in scsi-disk (EXTENDED COPY), and do similar to drive-mirror. > > The new bdrv_co_map_range can also be an alternative way to implement format > drivers in the future, once we make block/io.c use it in preadv/pwritev paths.
I posted concerns about the bdrv_co_map_range() interface. It would be safer to only have a copy_range() interface without exposing how data is mapped outside the driver where race conditions can occur and the format driver no longer has full control over file layout. Stefan
Description: PGP signature