{"id":814956,"url":"http://patchwork.ozlabs.org/api/patches/814956/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/ebb77bf863c768a2fca0f1dc8a423ec9636a3c5c.1505737465.git.maozy.fnst@cn.fujitsu.com/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<ebb77bf863c768a2fca0f1dc8a423ec9636a3c5c.1505737465.git.maozy.fnst@cn.fujitsu.com>","list_archive_url":null,"date":"2017-09-18T14:05:17","name":"[v3,5/6] hw/block: Use errp directly rather than local_err","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"8fe79933bf3ae265e898414f56a57b2161e785fb","submitter":{"id":71231,"url":"http://patchwork.ozlabs.org/api/people/71231/?format=json","name":"Mao Zhongyi","email":"maozy.fnst@cn.fujitsu.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/ebb77bf863c768a2fca0f1dc8a423ec9636a3c5c.1505737465.git.maozy.fnst@cn.fujitsu.com/mbox/","series":[{"id":3655,"url":"http://patchwork.ozlabs.org/api/series/3655/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=3655","date":"2017-09-18T14:05:14","name":"Convert to realize and improve error handling","version":3,"mbox":"http://patchwork.ozlabs.org/series/3655/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/814956/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/814956/checks/","tags":{},"related":[],"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xwp0p2xVLz9s7M\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 19 Sep 2017 00:14:33 +1000 (AEST)","from localhost ([::1]:36878 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dtwoh-0005p4-H1\n\tfor incoming@patchwork.ozlabs.org; Mon, 18 Sep 2017 10:14:31 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:42949)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <maozy.fnst@cn.fujitsu.com>) id 1dtwiW-0000iG-IM\n\tfor qemu-devel@nongnu.org; Mon, 18 Sep 2017 10:08:13 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <maozy.fnst@cn.fujitsu.com>) id 1dtwiQ-0006QF-SA\n\tfor qemu-devel@nongnu.org; Mon, 18 Sep 2017 10:08:08 -0400","from mail.cn.fujitsu.com ([183.91.158.132]:20987\n\thelo=heian.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <maozy.fnst@cn.fujitsu.com>) id 1dtwiQ-0006Nj-92\n\tfor qemu-devel@nongnu.org; Mon, 18 Sep 2017 10:08:02 -0400","from localhost (HELO cn.fujitsu.com) ([10.167.33.5])\n\tby heian.cn.fujitsu.com with ESMTP; 18 Sep 2017 22:07:50 +0800","from G08CNEXCHPEKD03.g08.fujitsu.local (unknown [10.167.33.85])\n\tby cn.fujitsu.com (Postfix) with ESMTP id 15D6146BA6A2;\n\tMon, 18 Sep 2017 22:07:49 +0800 (CST)","from maozy.g08.fujitsu.local (10.167.225.76) by\n\tG08CNEXCHPEKD03.g08.fujitsu.local (10.167.33.89) with Microsoft SMTP\n\tServer (TLS) id 14.3.361.1; Mon, 18 Sep 2017 22:07:51 +0800"],"X-IronPort-AV":"E=Sophos;i=\"5.42,413,1500912000\"; d=\"scan'208\";a=\"26773971\"","From":"Mao Zhongyi <maozy.fnst@cn.fujitsu.com>","To":"<qemu-devel@nongnu.org>","Date":"Mon, 18 Sep 2017 22:05:17 +0800","Message-ID":"<ebb77bf863c768a2fca0f1dc8a423ec9636a3c5c.1505737465.git.maozy.fnst@cn.fujitsu.com>","X-Mailer":"git-send-email 2.9.4","In-Reply-To":"<cover.1505737465.git.maozy.fnst@cn.fujitsu.com>","References":"<cover.1505737465.git.maozy.fnst@cn.fujitsu.com>","MIME-Version":"1.0","Content-Type":"text/plain","X-Originating-IP":"[10.167.225.76]","X-yoursite-MailScanner-ID":"15D6146BA6A2.A4A84","X-yoursite-MailScanner":"Found to be clean","X-yoursite-MailScanner-From":"maozy.fnst@cn.fujitsu.com","X-detected-operating-system":"by eggs.gnu.org: Genre and OS details not\n\trecognized.","X-Received-From":"183.91.158.132","Subject":"[Qemu-devel] [PATCH v3 5/6] hw/block: Use errp directly rather than\n\tlocal_err","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"Kevin Wolf <kwolf@redhat.com>, \"Michael S. Tsirkin\" <mst@redhat.com>,\n\tMarkus Armbruster <armbru@redhat.com>, Max Reitz <mreitz@redhat.com>, \n\tKeith Busch <keith.busch@intel.com>, Gerd Hoffmann <kraxel@redhat.com>,\n\tStefan Hajnoczi <stefanha@redhat.com>,\n\tPaolo Bonzini <pbonzini@redhat.com>, John Snow <jsnow@redhat.com>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"},"content":"Pass the error message to errp directly rather than the local\nvariable local_err and propagate it to errp via error_propagate().\n\nCc: John Snow <jsnow@redhat.com>\nCc: Kevin Wolf <kwolf@redhat.com>\nCc: Max Reitz <mreitz@redhat.com>\nCc: Keith Busch <keith.busch@intel.com>\nCc: Stefan Hajnoczi <stefanha@redhat.com>\nCc: \"Michael S. Tsirkin\" <mst@redhat.com>\nCc: Paolo Bonzini <pbonzini@redhat.com>\nCc: Gerd Hoffmann <kraxel@redhat.com>\nCc: Markus Armbruster <armbru@redhat.com>\n\nSigned-off-by: Mao Zhongyi <maozy.fnst@cn.fujitsu.com>\nReviewed-by: Stefan Hajnoczi <stefanha@redhat.com>\n---\n hw/block/fdc.c        | 17 ++++++-----------\n hw/block/nvme.c       |  8 +++-----\n hw/block/virtio-blk.c | 17 +++++------------\n hw/ide/qdev.c         | 12 ++++--------\n hw/scsi/scsi-disk.c   | 13 ++++---------\n hw/usb/dev-storage.c  |  9 +++------\n 6 files changed, 25 insertions(+), 51 deletions(-)","diff":"diff --git a/hw/block/fdc.c b/hw/block/fdc.c\nindex 2853cdc..629609e 100644\n--- a/hw/block/fdc.c\n+++ b/hw/block/fdc.c\n@@ -473,16 +473,13 @@ static void fd_revalidate(FDrive *drv)\n static void fd_change_cb(void *opaque, bool load, Error **errp)\n {\n     FDrive *drive = opaque;\n-    Error *local_err = NULL;\n \n     if (!load) {\n         blk_set_perm(drive->blk, 0, BLK_PERM_ALL, &error_abort);\n     } else {\n-        blkconf_apply_backend_options(drive->conf,\n-                                      blk_is_read_only(drive->blk), false,\n-                                      &local_err);\n-        if (local_err) {\n-            error_propagate(errp, local_err);\n+        if (!blkconf_apply_backend_options(drive->conf,\n+                                           blk_is_read_only(drive->blk),\n+                                           false, errp)) {\n             return;\n         }\n     }\n@@ -522,7 +519,6 @@ static void floppy_drive_realize(DeviceState *qdev, Error **errp)\n     FloppyDrive *dev = FLOPPY_DRIVE(qdev);\n     FloppyBus *bus = FLOPPY_BUS(qdev->parent_bus);\n     FDrive *drive;\n-    Error *local_err = NULL;\n     int ret;\n \n     if (dev->unit == -1) {\n@@ -568,10 +564,9 @@ static void floppy_drive_realize(DeviceState *qdev, Error **errp)\n     dev->conf.rerror = BLOCKDEV_ON_ERROR_AUTO;\n     dev->conf.werror = BLOCKDEV_ON_ERROR_AUTO;\n \n-    blkconf_apply_backend_options(&dev->conf, blk_is_read_only(dev->conf.blk),\n-                                  false, &local_err);\n-    if (local_err) {\n-        error_propagate(errp, local_err);\n+    if (!blkconf_apply_backend_options(&dev->conf,\n+                                       blk_is_read_only(dev->conf.blk),\n+                                       false, errp)) {\n         return;\n     }\n \ndiff --git a/hw/block/nvme.c b/hw/block/nvme.c\nindex a18bf69..e117f7a 100644\n--- a/hw/block/nvme.c\n+++ b/hw/block/nvme.c\n@@ -928,7 +928,6 @@ static void nvme_realize(PCIDevice *pci_dev, Error **errp)\n     int i;\n     int64_t bs_size;\n     uint8_t *pci_conf;\n-    Error *local_err = NULL;\n \n     if (!n->conf.blk) {\n         error_setg(errp, \"drive property not set\");\n@@ -947,10 +946,9 @@ static void nvme_realize(PCIDevice *pci_dev, Error **errp)\n         return;\n     }\n     blkconf_blocksizes(&n->conf);\n-    blkconf_apply_backend_options(&n->conf, blk_is_read_only(n->conf.blk),\n-                                  false, &local_err);\n-    if (local_err) {\n-        error_propagate(errp, local_err);\n+    if (!blkconf_apply_backend_options(&n->conf,\n+                                       blk_is_read_only(n->conf.blk),\n+                                       false, errp)) {\n         return;\n     }\n \ndiff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c\nindex a16ac75..4b4cdfe 100644\n--- a/hw/block/virtio-blk.c\n+++ b/hw/block/virtio-blk.c\n@@ -913,7 +913,6 @@ static void virtio_blk_device_realize(DeviceState *dev, Error **errp)\n     VirtIODevice *vdev = VIRTIO_DEVICE(dev);\n     VirtIOBlock *s = VIRTIO_BLK(dev);\n     VirtIOBlkConf *conf = &s->conf;\n-    Error *err = NULL;\n     unsigned i;\n \n     if (!conf->conf.blk) {\n@@ -930,17 +929,13 @@ static void virtio_blk_device_realize(DeviceState *dev, Error **errp)\n     }\n \n     blkconf_serial(&conf->conf, &conf->serial);\n-    blkconf_apply_backend_options(&conf->conf,\n-                                  blk_is_read_only(conf->conf.blk), true,\n-                                  &err);\n-    if (err) {\n-        error_propagate(errp, err);\n+    if (!blkconf_apply_backend_options(&conf->conf,\n+                                       blk_is_read_only(conf->conf.blk),\n+                                       true, errp)) {\n         return;\n     }\n     s->original_wce = blk_enable_write_cache(conf->conf.blk);\n-    blkconf_geometry(&conf->conf, NULL, 65535, 255, 255, &err);\n-    if (err) {\n-        error_propagate(errp, err);\n+    if (!blkconf_geometry(&conf->conf, NULL, 65535, 255, 255, errp)) {\n         return;\n     }\n     blkconf_blocksizes(&conf->conf);\n@@ -955,9 +950,7 @@ static void virtio_blk_device_realize(DeviceState *dev, Error **errp)\n     for (i = 0; i < conf->num_queues; i++) {\n         virtio_add_queue(vdev, 128, virtio_blk_handle_output);\n     }\n-    virtio_blk_data_plane_create(vdev, conf, &s->dataplane, &err);\n-    if (err != NULL) {\n-        error_propagate(errp, err);\n+    if (!virtio_blk_data_plane_create(vdev, conf, &s->dataplane, errp)) {\n         virtio_cleanup(vdev);\n         return;\n     }\ndiff --git a/hw/ide/qdev.c b/hw/ide/qdev.c\nindex d60ac25..9677191 100644\n--- a/hw/ide/qdev.c\n+++ b/hw/ide/qdev.c\n@@ -160,7 +160,6 @@ static void ide_dev_initfn(IDEDevice *dev, IDEDriveKind kind, Error **errp)\n {\n     IDEBus *bus = DO_UPCAST(IDEBus, qbus, dev->qdev.parent_bus);\n     IDEState *s = bus->ifs + dev->unit;\n-    Error *err = NULL;\n     int ret;\n \n     if (!dev->conf.blk) {\n@@ -191,16 +190,13 @@ static void ide_dev_initfn(IDEDevice *dev, IDEDriveKind kind, Error **errp)\n \n     blkconf_serial(&dev->conf, &dev->serial);\n     if (kind != IDE_CD) {\n-        blkconf_geometry(&dev->conf, &dev->chs_trans, 65535, 16, 255, &err);\n-        if (err) {\n-            error_propagate(errp, err);\n+        if (!blkconf_geometry(&dev->conf, &dev->chs_trans, 65535, 16, 255,\n+                              errp)) {\n             return;\n         }\n     }\n-    blkconf_apply_backend_options(&dev->conf, kind == IDE_CD, kind != IDE_CD,\n-                                  &err);\n-    if (err) {\n-        error_propagate(errp, err);\n+    if (!blkconf_apply_backend_options(&dev->conf, kind == IDE_CD,\n+                                       kind != IDE_CD, errp)) {\n         return;\n     }\n \ndiff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c\nindex 5f1e5e8..64a7fdd 100644\n--- a/hw/scsi/scsi-disk.c\n+++ b/hw/scsi/scsi-disk.c\n@@ -2306,7 +2306,6 @@ static void scsi_disk_unit_attention_reported(SCSIDevice *dev)\n static void scsi_realize(SCSIDevice *dev, Error **errp)\n {\n     SCSIDiskState *s = DO_UPCAST(SCSIDiskState, qdev, dev);\n-    Error *err = NULL;\n \n     if (!s->qdev.conf.blk) {\n         error_setg(errp, \"drive property not set\");\n@@ -2322,17 +2321,13 @@ static void scsi_realize(SCSIDevice *dev, Error **errp)\n     blkconf_serial(&s->qdev.conf, &s->serial);\n     blkconf_blocksizes(&s->qdev.conf);\n     if (dev->type == TYPE_DISK) {\n-        blkconf_geometry(&dev->conf, NULL, 65535, 255, 255, &err);\n-        if (err) {\n-            error_propagate(errp, err);\n+        if (!blkconf_geometry(&dev->conf, NULL, 65535, 255, 255, errp)) {\n             return;\n         }\n     }\n-    blkconf_apply_backend_options(&dev->conf,\n-                                  blk_is_read_only(s->qdev.conf.blk),\n-                                  dev->type == TYPE_DISK, &err);\n-    if (err) {\n-        error_propagate(errp, err);\n+    if (!blkconf_apply_backend_options(&dev->conf,\n+                                       blk_is_read_only(s->qdev.conf.blk),\n+                                       dev->type == TYPE_DISK, errp)) {\n         return;\n     }\n \ndiff --git a/hw/usb/dev-storage.c b/hw/usb/dev-storage.c\nindex 8a61ec9..801f552 100644\n--- a/hw/usb/dev-storage.c\n+++ b/hw/usb/dev-storage.c\n@@ -601,7 +601,6 @@ static void usb_msd_realize_storage(USBDevice *dev, Error **errp)\n     MSDState *s = USB_STORAGE_DEV(dev);\n     BlockBackend *blk = s->conf.blk;\n     SCSIDevice *scsi_dev;\n-    Error *err = NULL;\n \n     if (!blk) {\n         error_setg(errp, \"drive property not set\");\n@@ -610,9 +609,8 @@ static void usb_msd_realize_storage(USBDevice *dev, Error **errp)\n \n     blkconf_serial(&s->conf, &dev->serial);\n     blkconf_blocksizes(&s->conf);\n-    blkconf_apply_backend_options(&s->conf, blk_is_read_only(blk), true, &err);\n-    if (err) {\n-        error_propagate(errp, err);\n+    if (!blkconf_apply_backend_options(&s->conf, blk_is_read_only(blk),\n+                                       true, errp)) {\n         return;\n     }\n \n@@ -636,10 +634,9 @@ static void usb_msd_realize_storage(USBDevice *dev, Error **errp)\n                  &usb_msd_scsi_info_storage, NULL);\n     scsi_dev = scsi_bus_legacy_add_drive(&s->bus, blk, 0, !!s->removable,\n                                          s->conf.bootindex, dev->serial,\n-                                         &err);\n+                                         errp);\n     blk_unref(blk);\n     if (!scsi_dev) {\n-        error_propagate(errp, err);\n         return;\n     }\n     usb_msd_handle_reset(dev);\n","prefixes":["v3","5/6"]}