qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 00/20] block/export: Allow exporting BDSs via FUSE


From: Max Reitz
Subject: Re: [PATCH v2 00/20] block/export: Allow exporting BDSs via FUSE
Date: Thu, 15 Oct 2020 18:47:08 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0

On 15.10.20 14:01, Kevin Wolf wrote:
> Am 22.09.2020 um 12:49 hat Max Reitz geschrieben:
>> Based-on: <20200907182011.521007-1-kwolf@redhat.com>
>>           (“block/export: Add infrastructure and QAPI for block exports”)
>>
>> (Though its patch 16 needs a s/= \&blk_exp_nbd/= drv/ on top.)
>>
>> v1: https://lists.nongnu.org/archive/html/qemu-block/2019-12/msg00451.html
>>
>> Branch: https://github.com/XanClic/qemu.git fuse-exports-v2
>> Branch: https://git.xanclic.moe/XanClic/qemu.git fuse-exports-v2
>>
>>
>> Hi,
>>
>> Ever since I found out that you can mount FUSE filesystems on regular
>> files (not just directories), I had the idea of adding FUSE block
>> exports to qemu where you can export block nodes as raw images.  The
>> best thing is that you’d be able to mount an image on itself, so
>> whatever format it may be in, qemu lets it appear as a raw image (and
>> you can then use regular tools like dd on it).
>>
>> The performance is quite bad so far, but we can always try to improve it
>> if the need arises.  For now I consider it mostly a cute feature to get
>> easy access to the raw contents of image files in any format (without
>> requiring root rights).
>>
>> In this version (as opposed to v1 linked above), I integrated the FUSE
>> export code into Kevin’s proposed common infrastructure for block
>> exports.
> 
> Patches 5-16, 19 and 20:
> 
> Reviewed-by: Kevin Wolf <kwolf@redhat.com>

Thanks!

So far, (just FYI,) I’ve tried to address your remarks, gathered them in
a single fat commit, and pushed everything here:

https://github.com/XanClic/qemu/tree/fuse-exports-next

(There’s also something about two bugs in fuse_fallocate(), where there
are these two I/O loops (one for blk_pwrite_zeroes(), one for
blk_pdiscard()), where I both forgot to increment @offset (alongside
decrementing @length).  Oops.)

(And I’ve renamed init_fuse() to init_exports_table(), because that got
really confusing with fuse_init().)

I’ll split that up, squash it into the respective patches, and send v3
when I get back from PTO.

Max

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]