qemu-block
[Top][All Lists]
Advanced

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

Re: [PATCH 43/46] qdev: Smooth error checking manually


From: Eric Blake
Subject: Re: [PATCH 43/46] qdev: Smooth error checking manually
Date: Wed, 24 Jun 2020 16:42:57 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0

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 <armbru@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.

-
-        if (local_err) {
-            error_propagate(errp, local_err);
+        if (!ok) {
              return;
          }

Reviewed-by: Eric Blake <eblake@redhat.com>

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org




reply via email to

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