[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 02/18] fuse: Allow exporting BDSs via FUSE
From: |
Markus Armbruster |
Subject: |
Re: [PATCH 02/18] fuse: Allow exporting BDSs via FUSE |
Date: |
Fri, 20 Dec 2019 14:25:34 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) |
Kevin Wolf <address@hidden> writes:
> Am 20.12.2019 um 13:48 hat Markus Armbruster geschrieben:
>> Kevin Wolf <address@hidden> writes:
>>
>> > Am 20.12.2019 um 11:48 hat Max Reitz geschrieben:
>> >> So if we kept writable and growable in the common base, then the schema
>> >> would give no information about what exports actually support them.
>> >>
>> >> On one hand, I don’t know whether it’s important to have this
>> >> information in a static form, or whether it’s sufficient to learn at
>> >> runtime.
>> >>
>> >> On the other, I don’t know whether it’s important to have those fields
>> >> in the base or not. Would it make a difference on the wire?
>> >
>> > Not for the command itself, so I think we're free to change it later. It
>> > might make a difference for introspection, though, not sure. Markus?
>>
>> QAPI schema introspection is designed to hide the difference between
>> local members and base members. You can move members to or from a base
>> type freely without affecting introspection. Even if that creates or
>> deletes the base type.
>
> Good, that's helpful. So I can split the nbd-server-add argument type
> into a base that is reused as a union branch and the rest without
> potentially breaking anything.
>
> I suppose moving a field between a union base and all variants does
> still result in different introspection even though the accepted inputs
> are the same.
Correct. A common member (whether it's local or from the base) is in
SchemaInfoObject.members[]. Moving it to all the variants moves it to
the variant types' .members[].
> Is this kind of movement still allowed unconditionally or
> should we be more careful with something like this?
QMP's backward compatibility promise does not include "introspection
value won't change". Still, such changes can conceivably confuse
clients. Care is advisable. But it's not a hard "no".
- [PATCH 00/18] block: Allow exporting BDSs via FUSE, Max Reitz, 2019/12/19
- [PATCH 01/18] configure: Detect libfuse, Max Reitz, 2019/12/19
- [PATCH 02/18] fuse: Allow exporting BDSs via FUSE, Max Reitz, 2019/12/19
- Re: [PATCH 02/18] fuse: Allow exporting BDSs via FUSE, Kevin Wolf, 2019/12/20
- Re: [PATCH 02/18] fuse: Allow exporting BDSs via FUSE, Max Reitz, 2019/12/20
- Re: [PATCH 02/18] fuse: Allow exporting BDSs via FUSE, Kevin Wolf, 2019/12/20
- Re: [PATCH 02/18] fuse: Allow exporting BDSs via FUSE, Max Reitz, 2019/12/20
- Re: [PATCH 02/18] fuse: Allow exporting BDSs via FUSE, Markus Armbruster, 2019/12/20
- Re: [PATCH 02/18] fuse: Allow exporting BDSs via FUSE, Kevin Wolf, 2019/12/20
- Re: [PATCH 02/18] fuse: Allow exporting BDSs via FUSE,
Markus Armbruster <=
- Re: [PATCH 02/18] fuse: Allow exporting BDSs via FUSE, Eric Blake, 2019/12/20
- Re: [PATCH 02/18] fuse: Allow exporting BDSs via FUSE, Markus Armbruster, 2019/12/20
- Re: [PATCH 02/18] fuse: Allow exporting BDSs via FUSE, Kevin Wolf, 2019/12/20
Re: [PATCH 02/18] fuse: Allow exporting BDSs via FUSE, Eric Blake, 2019/12/20
[PATCH 03/18] fuse: Implement standard FUSE operations, Max Reitz, 2019/12/19
[PATCH 04/18] fuse: Add fuse-export-remove, Max Reitz, 2019/12/19
[PATCH 05/18] fuse: Allow growable exports, Max Reitz, 2019/12/19
[PATCH 06/18] fuse: (Partially) implement fallocate(), Max Reitz, 2019/12/19
[PATCH 07/18] fuse: Implement hole detection through lseek, Max Reitz, 2019/12/19
[PATCH 08/18] iotests: Do not needlessly filter _make_test_img, Max Reitz, 2019/12/19