qemu-block
[Top][All Lists]
Advanced

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

Re: [PATCH v2 03/33] block: Add BdrvChildRole


From: Max Reitz
Subject: Re: [PATCH v2 03/33] block: Add BdrvChildRole
Date: Thu, 6 Feb 2020 11:49:51 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1

On 06.02.20 11:47, Max Reitz wrote:
> On 05.02.20 16:24, Eric Blake wrote:
>> On 2/4/20 11:08 AM, Max Reitz wrote:
>>> This enum will supplement BdrvChildClass when it comes to what role (or
>>> combination of roles) a child takes for its parent.
>>>
>>> Because empty enums are not allowed, let us just start with it filled.
>>>
>>> Signed-off-by: Max Reitz <address@hidden>
>>> ---
>>>   include/block/block.h | 27 +++++++++++++++++++++++++++
>>>   1 file changed, 27 insertions(+)
>>>
>>> diff --git a/include/block/block.h b/include/block/block.h
>>> index 38963ef203..0f7e8caa5b 100644
>>> --- a/include/block/block.h
>>> +++ b/include/block/block.h
>>> @@ -279,6 +279,33 @@ enum {
>>>       DEFAULT_PERM_UNCHANGED      = BLK_PERM_ALL &
>>> ~DEFAULT_PERM_PASSTHROUGH,
>>>   };
>>>   +typedef enum BdrvChildRole {
>>> +    /* Child stores data */
>>> +    BDRV_CHILD_DATA         = (1 << 0),
>>> +
>>> +    /* Child stores metadata */
>>> +    BDRV_CHILD_METADATA     = (1 << 1),
>>> +
>>> +    /* Filtered child */
>>> +    BDRV_CHILD_FILTERED     = (1 << 2),
>>
>> I'm not sure this comment does justice for what the flag represents, but
>> am not sure of what longer comment to put in its place.
> 
> You’re right.  I thought I could just rely on our .is_filter
> documentation (at least after
> https://lists.gnu.org/archive/html/qemu-devel/2019-08/msg01721.html),
> but that doesn’t really apply here.
> 
> For example, this series makes raw (without further parameters) have a
> CHILD_FILTERED child, without raw being a filter itself.
> 
> So there should indeed be some definition here.
> 
> Maybe:
> 
> A child to which the parent forwards all reads and writes.  Therefore,
> this child presents exactly the same visible data as the parent.

On second thought, the “therefore” is wrong, because the first sentence
applies to quorum, but the logical conclusion does not.

So maybe rather:

A child to which the parent forwards all reads and writes.  It must
present exactly the same visible data as the parent.
Any node may have at most one filtered child at a time.

?

Max

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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