[Libguestfs] [PREVIEW ONLY] Refactor data transfer code

Matthew Booth mbooth at redhat.com
Wed Sep 22 08:59:20 UTC 2010


On 22/09/10 09:50, Richard W.M. Jones wrote:
> On Wed, Sep 22, 2010 at 09:36:41AM +0100, Matthew Booth wrote:
>> On 21/09/10 20:12, Richard W.M. Jones wrote:
>>>
>>> This patch is not using hread/hwrite?
>>
>> No. That will be required for changing formats, but not for a straight copy.
>>
>>> Anyway I'd be interested in whether you can do all you wanted from
>>> hread/hwrite/hseek/etc using the proposed upload-offset API that I
>>> posted here:
>>>
>>> http://www.redhat.com/archives/libguestfs/2010-September/msg00026.html
>>> http://www.redhat.com/archives/libguestfs/2010-September/msg00027.html
>>
>> No, because the API requires passing in a file, which I don't have.
>
> This is not true.  You can write from anything that you can get into a
> file descriptor, by specifying "/dev/fd/NN" as the filename.
>
> However the API does require that the source of the data comes from a
> separate thread or process, which is not how virt-v2v works at the
> moment.
>
> I suspect you need to just use pwrite.  AFAICT it already does
> everything you need.

Except read and write from a block device, although that could be fixed 
with new APIs.

Also, as I said before, I think the handle-based API is a good 
alternative for large data-transfer. I don't think your hexedit 
experience was a good example. For example, I would expect using hread 
to be less code than using pread for reading the contents of a file into 
memory in chunks.

Matt
-- 
Matthew Booth, RHCA, RHCSS
Red Hat Engineering, Virtualisation Team

GPG ID:  D33C3490
GPG FPR: 3733 612D 2D05 5458 8A8A 1600 3441 EA19 D33C 3490




More information about the Libguestfs mailing list