All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luiz Capitulino <lcapitulino@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: kwolf@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com,
	mdroth@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [PATCH 04/11] qerror: Eliminate QERR_DEVICE_NOT_FOUND
Date: Mon, 15 Jun 2015 11:18:33 -0400	[thread overview]
Message-ID: <20150615111833.0d5398fe@redhat.com> (raw)
In-Reply-To: <1434205258-1932-5-git-send-email-armbru@redhat.com>

On Sat, 13 Jun 2015 16:20:51 +0200
Markus Armbruster <armbru@redhat.com> wrote:

> Error classes other than ERROR_CLASS_GENERIC_ERROR should not be used
> in new code.  Hiding them in QERR_ macros makes new uses hard to spot.
> Fortunately, there's just one such macro left.  Eliminate it with this
> coccinelle semantic patch:
> 
>     @@
>     expression EP, E;
>     @@
>     -error_set(EP, QERR_DEVICE_NOT_FOUND, E)
>     +error_set(EP, ERROR_CLASS_DEVICE_NOT_FOUND, "Device '%s' not found", E)

This is a bit minor, but I think I'd have created a new function instead,
say error_set_enodev(). This avoids all the duplication. But I'm not asking
you to change, as the patch is good and this can be done in the future if
we so want.

> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  backends/rng-egd.c        |  3 ++-
>  blockdev-nbd.c            |  3 ++-
>  blockdev.c                | 33 ++++++++++++++++++++++-----------
>  hmp.c                     |  6 ++++--
>  include/qapi/qmp/qerror.h |  3 ---
>  net/net.c                 |  6 ++++--
>  qdev-monitor.c            |  6 ++++--
>  qmp.c                     | 12 ++++++++----
>  qom/object.c              |  6 ++++--
>  ui/input.c                |  3 ++-
>  10 files changed, 52 insertions(+), 29 deletions(-)
> 
> diff --git a/backends/rng-egd.c b/backends/rng-egd.c
> index 2962795..849bd7a 100644
> --- a/backends/rng-egd.c
> +++ b/backends/rng-egd.c
> @@ -147,7 +147,8 @@ static void rng_egd_opened(RngBackend *b, Error **errp)
>  
>      s->chr = qemu_chr_find(s->chr_name);
>      if (s->chr == NULL) {
> -        error_set(errp, QERR_DEVICE_NOT_FOUND, s->chr_name);
> +        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", s->chr_name);
>          return;
>      }
>  
> diff --git a/blockdev-nbd.c b/blockdev-nbd.c
> index 0d9df47..128e810 100644
> --- a/blockdev-nbd.c
> +++ b/blockdev-nbd.c
> @@ -91,7 +91,8 @@ void qmp_nbd_server_add(const char *device, bool has_writable, bool writable,
>  
>      blk = blk_by_name(device);
>      if (!blk) {
> -        error_set(errp, QERR_DEVICE_NOT_FOUND, device);
> +        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", device);
>          return;
>      }
>      if (!blk_is_inserted(blk)) {
> diff --git a/blockdev.c b/blockdev.c
> index a88ea76..8dec0cc 100644
> --- a/blockdev.c
> +++ b/blockdev.c
> @@ -1102,7 +1102,8 @@ SnapshotInfo *qmp_blockdev_snapshot_delete_internal_sync(const char *device,
>  
>      blk = blk_by_name(device);
>      if (!blk) {
> -        error_set(errp, QERR_DEVICE_NOT_FOUND, device);
> +        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", device);
>          return NULL;
>      }
>      bs = blk_bs(blk);
> @@ -1291,7 +1292,8 @@ static void internal_snapshot_prepare(BlkTransactionState *common,
>      /* 2. check for validation */
>      blk = blk_by_name(device);
>      if (!blk) {
> -        error_set(errp, QERR_DEVICE_NOT_FOUND, device);
> +        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", device);
>          return;
>      }
>      bs = blk_bs(blk);
> @@ -1571,7 +1573,8 @@ static void drive_backup_prepare(BlkTransactionState *common, Error **errp)
>  
>      blk = blk_by_name(backup->device);
>      if (!blk) {
> -        error_set(errp, QERR_DEVICE_NOT_FOUND, backup->device);
> +        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", backup->device);
>          return;
>      }
>      bs = blk_bs(blk);
> @@ -1841,7 +1844,8 @@ void qmp_eject(const char *device, bool has_force, bool force, Error **errp)
>  
>      blk = blk_by_name(device);
>      if (!blk) {
> -        error_set(errp, QERR_DEVICE_NOT_FOUND, device);
> +        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", device);
>          return;
>      }
>  
> @@ -1901,7 +1905,8 @@ void qmp_change_blockdev(const char *device, const char *filename,
>  
>      blk = blk_by_name(device);
>      if (!blk) {
> -        error_set(errp, QERR_DEVICE_NOT_FOUND, device);
> +        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", device);
>          return;
>      }
>      bs = blk_bs(blk);
> @@ -1960,7 +1965,8 @@ void qmp_block_set_io_throttle(const char *device, int64_t bps, int64_t bps_rd,
>  
>      blk = blk_by_name(device);
>      if (!blk) {
> -        error_set(errp, QERR_DEVICE_NOT_FOUND, device);
> +        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", device);
>          return;
>      }
>      bs = blk_bs(blk);
> @@ -2275,7 +2281,8 @@ void qmp_block_stream(const char *device,
>  
>      blk = blk_by_name(device);
>      if (!blk) {
> -        error_set(errp, QERR_DEVICE_NOT_FOUND, device);
> +        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", device);
>          return;
>      }
>      bs = blk_bs(blk);
> @@ -2349,7 +2356,8 @@ void qmp_block_commit(const char *device,
>       *  scenario in which all optional arguments are omitted. */
>      blk = blk_by_name(device);
>      if (!blk) {
> -        error_set(errp, QERR_DEVICE_NOT_FOUND, device);
> +        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", device);
>          return;
>      }
>      bs = blk_bs(blk);
> @@ -2461,7 +2469,8 @@ void qmp_drive_backup(const char *device, const char *target,
>  
>      blk = blk_by_name(device);
>      if (!blk) {
> -        error_set(errp, QERR_DEVICE_NOT_FOUND, device);
> +        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", device);
>          return;
>      }
>      bs = blk_bs(blk);
> @@ -2675,7 +2684,8 @@ void qmp_drive_mirror(const char *device, const char *target,
>  
>      blk = blk_by_name(device);
>      if (!blk) {
> -        error_set(errp, QERR_DEVICE_NOT_FOUND, device);
> +        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", device);
>          return;
>      }
>      bs = blk_bs(blk);
> @@ -2941,7 +2951,8 @@ void qmp_change_backing_file(const char *device,
>  
>      blk = blk_by_name(device);
>      if (!blk) {
> -        error_set(errp, QERR_DEVICE_NOT_FOUND, device);
> +        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", device);
>          return;
>      }
>      bs = blk_bs(blk);
> diff --git a/hmp.c b/hmp.c
> index 05e4927..6f63927 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -1863,7 +1863,8 @@ void hmp_qemu_io(Monitor *mon, const QDict *qdict)
>      if (blk) {
>          qemuio_command(blk, command);
>      } else {
> -        error_set(&err, QERR_DEVICE_NOT_FOUND, device);
> +        error_set(&err, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", device);
>      }
>  
>      hmp_handle_error(mon, &err);
> @@ -1991,7 +1992,8 @@ void hmp_qom_set(Monitor *mon, const QDict *qdict)
>  
>      obj = object_resolve_path(path, &ambiguous);
>      if (obj == NULL) {
> -        error_set(&err, QERR_DEVICE_NOT_FOUND, path);
> +        error_set(&err, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", path);
>      } else {
>          if (ambiguous) {
>              monitor_printf(mon, "Warning: Path '%s' is ambiguous\n", path);
> diff --git a/include/qapi/qmp/qerror.h b/include/qapi/qmp/qerror.h
> index 6468e40..2841344 100644
> --- a/include/qapi/qmp/qerror.h
> +++ b/include/qapi/qmp/qerror.h
> @@ -55,9 +55,6 @@ void qerror_report_err(Error *err);
>  #define QERR_DEVICE_NO_HOTPLUG \
>      ERROR_CLASS_GENERIC_ERROR, "Device '%s' does not support hotplugging"
>  
> -#define QERR_DEVICE_NOT_FOUND \
> -    ERROR_CLASS_DEVICE_NOT_FOUND, "Device '%s' not found"
> -
>  #define QERR_FD_NOT_FOUND \
>      ERROR_CLASS_GENERIC_ERROR, "File descriptor named '%s' not found"
>  
> diff --git a/net/net.c b/net/net.c
> index 429012f..212762d 100644
> --- a/net/net.c
> +++ b/net/net.c
> @@ -1109,7 +1109,8 @@ void qmp_netdev_del(const char *id, Error **errp)
>  
>      nc = qemu_find_netdev(id);
>      if (!nc) {
> -        error_set(errp, QERR_DEVICE_NOT_FOUND, id);
> +        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", id);
>          return;
>      }
>  
> @@ -1220,7 +1221,8 @@ void qmp_set_link(const char *name, bool up, Error **errp)
>                                            MAX_QUEUE_NUM);
>  
>      if (queues == 0) {
> -        error_set(errp, QERR_DEVICE_NOT_FOUND, name);
> +        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", name);
>          return;
>      }
>      nc = ncs[0];
> diff --git a/qdev-monitor.c b/qdev-monitor.c
> index e1dd367..7bd7d25 100644
> --- a/qdev-monitor.c
> +++ b/qdev-monitor.c
> @@ -457,7 +457,8 @@ static BusState *qbus_find(const char *path, Error **errp)
>          pos += len;
>          dev = qbus_find_dev(bus, elem);
>          if (!dev) {
> -            error_set(errp, QERR_DEVICE_NOT_FOUND, elem);
> +            error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                      "Device '%s' not found", elem);
>  #if 0 /* conversion from qerror_report() to error_set() broke this: */
>              if (!monitor_cur_is_qmp()) {
>                  qbus_list_dev(bus);
> @@ -793,7 +794,8 @@ void qmp_device_del(const char *id, Error **errp)
>      g_free(path);
>  
>      if (!obj) {
> -        error_set(errp, QERR_DEVICE_NOT_FOUND, id);
> +        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", id);
>          return;
>      }
>  
> diff --git a/qmp.c b/qmp.c
> index 60658b4..14f7536 100644
> --- a/qmp.c
> +++ b/qmp.c
> @@ -206,7 +206,8 @@ ObjectPropertyInfoList *qmp_qom_list(const char *path, Error **errp)
>          if (ambiguous) {
>              error_setg(errp, "Path '%s' is ambiguous", path);
>          } else {
> -            error_set(errp, QERR_DEVICE_NOT_FOUND, path);
> +            error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                      "Device '%s' not found", path);
>          }
>          return NULL;
>      }
> @@ -236,7 +237,8 @@ int qmp_qom_set(Monitor *mon, const QDict *qdict, QObject **ret)
>  
>      obj = object_resolve_path(path, NULL);
>      if (!obj) {
> -        error_set(&local_err, QERR_DEVICE_NOT_FOUND, path);
> +        error_set(&local_err, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", path);
>          goto out;
>      }
>  
> @@ -261,7 +263,8 @@ int qmp_qom_get(Monitor *mon, const QDict *qdict, QObject **ret)
>  
>      obj = object_resolve_path(path, NULL);
>      if (!obj) {
> -        error_set(&local_err, QERR_DEVICE_NOT_FOUND, path);
> +        error_set(&local_err, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", path);
>          goto out;
>      }
>  
> @@ -518,7 +521,8 @@ DevicePropertyInfoList *qmp_device_list_properties(const char *typename,
>  
>      klass = object_class_by_name(typename);
>      if (klass == NULL) {
> -        error_set(errp, QERR_DEVICE_NOT_FOUND, typename);
> +        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", typename);
>          return NULL;
>      }
>  
> diff --git a/qom/object.c b/qom/object.c
> index 96abd34..62fa44e 100644
> --- a/qom/object.c
> +++ b/qom/object.c
> @@ -890,7 +890,8 @@ Object *object_property_get_link(Object *obj, const char *name,
>      if (str && *str) {
>          target = object_resolve_path(str, NULL);
>          if (!target) {
> -            error_set(errp, QERR_DEVICE_NOT_FOUND, str);
> +            error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                      "Device '%s' not found", str);
>          }
>      }
>  
> @@ -1170,7 +1171,8 @@ static Object *object_resolve_link(Object *obj, const char *name,
>          if (target || ambiguous) {
>              error_set(errp, QERR_INVALID_PARAMETER_TYPE, name, target_type);
>          } else {
> -            error_set(errp, QERR_DEVICE_NOT_FOUND, path);
> +            error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                      "Device '%s' not found", path);
>          }
>          target = NULL;
>      }
> diff --git a/ui/input.c b/ui/input.c
> index eeeabe8..e96e1ea 100644
> --- a/ui/input.c
> +++ b/ui/input.c
> @@ -84,7 +84,8 @@ void qemu_input_handler_bind(QemuInputHandlerState *s,
>  
>      dev = qdev_find_recursive(sysbus_get_default(), device_id);
>      if (dev == NULL) {
> -        error_set(errp, QERR_DEVICE_NOT_FOUND, device_id);
> +        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
> +                  "Device '%s' not found", device_id);
>          return;
>      }
>  

  parent reply	other threads:[~2015-06-15 15:59 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-13 14:20 [Qemu-devel] [PATCH 00/11] Sprint to the finish: purge QError Markus Armbruster
2015-06-13 14:20 ` [Qemu-devel] [PATCH 01/11] QemuOpts: Wean off qerror_report_err() Markus Armbruster
2015-06-14  2:57   ` Eric Blake
2015-06-16 10:58     ` Markus Armbruster
2015-06-15 16:19   ` Stefan Hajnoczi
2015-06-13 14:20 ` [Qemu-devel] [PATCH 02/11] vl: Avoid qerror_report() outside QMP command handlers Markus Armbruster
2015-06-14  3:09   ` Eric Blake
2015-06-16 12:00     ` Markus Armbruster
2015-06-13 14:20 ` [Qemu-devel] [PATCH 03/11] vl: Use error_report() for --display errors Markus Armbruster
2015-06-15 12:49   ` Eric Blake
2015-06-13 14:20 ` [Qemu-devel] [PATCH 04/11] qerror: Eliminate QERR_DEVICE_NOT_FOUND Markus Armbruster
2015-06-15 13:59   ` Eric Blake
2015-06-16 12:26     ` Markus Armbruster
2015-06-15 15:13   ` Stefan Hajnoczi
2015-06-15 15:18   ` Luiz Capitulino [this message]
2015-06-15 20:33     ` Eric Blake
2015-06-16 12:28       ` Markus Armbruster
2015-06-15 20:41     ` Peter Maydell
2015-06-16 12:28       ` Markus Armbruster
2015-06-13 14:20 ` [Qemu-devel] [PATCH 05/11] qerror: Clean up QERR_ macros to expand into a single string Markus Armbruster
2015-06-15 15:12   ` Stefan Hajnoczi
2015-06-15 16:09   ` Eric Blake
2015-06-16 12:45     ` Markus Armbruster
2015-06-13 14:20 ` [Qemu-devel] [PATCH 06/11] tpm: Avoid qerror_report() outside QMP command handlers Markus Armbruster
2015-06-15 20:37   ` Eric Blake
2015-06-16 13:07     ` Markus Armbruster
2015-06-13 14:20 ` [Qemu-devel] [PATCH 07/11] qmp: Wean off qerror_report() Markus Armbruster
2015-06-15 15:08   ` Stefan Hajnoczi
2015-06-15 20:56   ` Eric Blake
2015-06-16 12:54     ` Markus Armbruster
2015-06-13 14:20 ` [Qemu-devel] [PATCH 08/11] qerror: Finally unused, clean up Markus Armbruster
2015-06-15 21:05   ` Eric Blake
2015-06-13 14:20 ` [Qemu-devel] [PATCH 09/11] qerror: Move #include out of qerror.h Markus Armbruster
2015-06-15 15:08   ` Stefan Hajnoczi
2015-06-15 21:37   ` Eric Blake
2015-06-13 14:20 ` [Qemu-devel] [PATCH 10/11] Include qapi/qmp/qerror.h exactly where needed Markus Armbruster
2015-06-15 15:09   ` Stefan Hajnoczi
2015-06-15 21:38   ` Eric Blake
2015-06-16 12:58     ` Markus Armbruster
2015-06-13 14:20 ` [Qemu-devel] [PATCH 11/11] Include monitor/monitor.h " Markus Armbruster
2015-06-15 15:09   ` Stefan Hajnoczi
2015-06-15 21:40   ` Eric Blake
2015-06-15 16:03 ` [Qemu-devel] [PATCH 00/11] Sprint to the finish: purge QError Luiz Capitulino
2015-06-16 13:08   ` Markus Armbruster
2015-06-16 13:35     ` Luiz Capitulino

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150615111833.0d5398fe@redhat.com \
    --to=lcapitulino@redhat.com \
    --cc=armbru@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mdroth@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.