On 7/1/22 17:36, Dumitru Ceara wrote:
> On 7/1/22 17:32, Ilya Maximets wrote:
>>> This doesn't look right, we can have:
>>>
>>> datum = ovsdb_datum_default(TYPE);  /* refcnt = 1 */
>>> ovsdb_datum_clone(datum, clone);    /* refcnt = 2 */
>>> datum2 = ovsdb_datum_default(TYPE); /* refcnt = 1 */
>> Here the refcnt will still be 2, because the initialization
>> is executed only once (protected by !d->n check).
>>
>>> ovsdb_datum_unshare(clone, TYPE);   /* refcnt = 0 */
>> So, here the refcnt will become 1 again.  Since users
>> are not supposed to destroy the non-cloned default datum,
>> that should work fine.  Am I missing something?
>>
> 
> You're right, I missed the !d->n.  Sorry for the noise.

I had another look and aside from the commit log typo about
s/idl/ovsdb-server.c/, the rest looks good to me, thanks!

Acked-by: Dumitru Ceara <dce...@redhat.com>

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to