Eric Blake <ebl...@redhat.com> writes:

> On 6/24/20 11:43 AM, Markus Armbruster wrote:
>> When foo(..., &err) is followed by error_propagate(errp, err), we can
>> often just as well do foo(..., errp).  The previous commit did that
>> for simple cases with Coccinelle.  Do it for one more manually.
>>
>> Signed-off-by: Markus Armbruster <arm...@redhat.com>
>> ---
>>   hw/block/fdc.c | 8 +++-----
>>   1 file changed, 3 insertions(+), 5 deletions(-)
>>
>
>> @@ -2566,11 +2566,9 @@ static void fdctrl_connect_drives(FDCtrl *fdctrl, 
>> DeviceState *fdc_dev,
>>           blk_ref(blk);
>>           blk_detach_dev(blk, fdc_dev);
>>           fdctrl->qdev_for_drives[i].blk = NULL;
>> -        qdev_prop_set_drive_err(dev, "drive", blk, &local_err);
>> +        ok = qdev_prop_set_drive_err(dev, "drive", blk, errp);
>>           blk_unref(blk);
>
> Perhaps some glib g_auto* magic could make this even easier (to mark a
> variable to be blk_unref'd when it goes out of scope).  But for now,
> your pattern is fine.

It's PATCH 43, my hatchet needs sharpening, and my arm hurts ;)

>> -
>> -        if (local_err) {
>> -            error_propagate(errp, local_err);
>> +        if (!ok) {
>>               return;
>>           }
>>   
>
> Reviewed-by: Eric Blake <ebl...@redhat.com>

Thanks!


Reply via email to