On 25.09.19 15:21, Vladimir Sementsov-Ogievskiy wrote: > 20.09.2019 18:27, Max Reitz wrote:
[...]
>> @@ -1022,8 +1028,10 @@ static void quorum_add_child(BlockDriverState *bs,
>> BlockDriverState *child_bs,
>> s->next_child_index--;
>> goto out;
>> }
>
> more context:
> assert(s->num_children <= INT_MAX / sizeof(BdrvChild *));
> if (s->num_children == INT_MAX / sizeof(BdrvChild *) ||
> s->next_child_index == UINT_MAX) {
> error_setg(errp, "Too many children");
> return;
> }
>
> here: s/BdrvChild */QuorumChild
>
>
>> - s->children = g_renew(BdrvChild *, s->children, s->num_children + 1);
>> - s->children[s->num_children++] = child;
>> + s->children = g_renew(QuorumChild, s->children, s->num_children + 1);
>> + s->children[s->num_children++] = (QuorumChild){
>> + .child = child,
>> + };
>>
>> out:
>> bdrv_drained_end(bs);
[...]
>> @@ -1059,7 +1067,7 @@ static void quorum_del_child(BlockDriverState *bs,
>> BdrvChild *child,
>> /* We can safely remove this child now */
>> memmove(&s->children[i], &s->children[i + 1],
>> (s->num_children - i - 1) * sizeof(BdrvChild *));
>
> s/BdrvChild */QuorumChild/
Damn, yes to both.
I was really hoping I didn’t mess this patch up.
Thanks.
Max
>> - s->children = g_renew(BdrvChild *, s->children, --s->num_children);
>> + s->children = g_renew(QuorumChild, s->children, --s->num_children);
>> bdrv_unref_child(bs, child);
>>
>> bdrv_drained_end(bs);
>> @@ -1100,7 +1108,7 @@ static void
>> quorum_gather_child_options(BlockDriverState *bs, QDict *target,
>>
>> for (i = 0; i < s->num_children; i++) {
>> qlist_append(children_list,
>> - qobject_ref(s->children[i]->bs->full_open_options));
>> +
>> qobject_ref(s->children[i].child->bs->full_open_options));
>> }
>> }
>>
>>
>
> with my suggestions:
> Reviewed-by: Vladimir Sementsov-Ogievskiy <[email protected]>
>
signature.asc
Description: OpenPGP digital signature
