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!