All of lore.kernel.org
 help / color / mirror / Atom feed
From: George Dunlap <George.Dunlap@eu.citrix.com>
To: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Cc: George Dunlap <george.dunlap@eu.citrix.com>,
	Ian Jackson <ian.jackson@citrix.com>,
	Wei Liu <wei.liu2@citrix.com>,
	Ian Campbell <ian.campbell@citrix.com>
Subject: Re: [PATCH v3 1/6] xl: Return proper error codes for block-attach and block-detach
Date: Tue, 8 Dec 2015 12:24:35 +0000	[thread overview]
Message-ID: <CAFLBxZYKGKX0Sx86amtxPTy9UM4ogTFRWwGhzG=dcjcGLom-ng@mail.gmail.com> (raw)
In-Reply-To: <1448970835-2706-1-git-send-email-george.dunlap@eu.citrix.com>

On Tue, Dec 1, 2015 at 11:53 AM, George Dunlap
<george.dunlap@eu.citrix.com> wrote:
> Return proper error codes on failure so that scripts can tell whether
> the command completed properly or not.
>
> Also while we're at it, normalize init and dispose of
> libxl_device_disk structures.  This means calling init and dispose in
> the actual functions where they are declared.
>
> This in turn means changing parse_disk_config_multistring() to not
> call libxl_device_disk_init.  And that in turn means changes to
> callers of parse_disk_config().
>
> It also means removing libxl_device_disk_init() from
> libxl.c:libxl_vdev_to_device_disk().  This is only called from
> xl_cmdimpl.c.
>
> Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>

Ping?
 -George

> ---
> CC: Ian Campbell <ian.campbell@citrix.com>
> CC: Ian Jackson <ian.jackson@citrix.com>
> CC: Wei Liu <wei.liu2@citrix.com>
> CC: Konrad Wilk <konrad.wilk@oracle.com>
>
> v3:
>  - Rebased to tip
>
> v2:
>  - Restructure functions to make sure init and dispose are properly
>  called.
> ---
>  tools/libxl/libxl.c      |  2 --
>  tools/libxl/xl_cmdimpl.c | 29 ++++++++++++++++++++---------
>  2 files changed, 20 insertions(+), 11 deletions(-)
>
> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
> index bd3aac8..814d056 100644
> --- a/tools/libxl/libxl.c
> +++ b/tools/libxl/libxl.c
> @@ -2738,8 +2738,6 @@ int libxl_vdev_to_device_disk(libxl_ctx *ctx, uint32_t domid,
>      if (devid < 0)
>          return ERROR_INVAL;
>
> -    libxl_device_disk_init(disk);
> -
>      dompath = libxl__xs_get_dompath(gc, domid);
>      if (!dompath) {
>          goto out;
> diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
> index 2b6371d..2ba2393 100644
> --- a/tools/libxl/xl_cmdimpl.c
> +++ b/tools/libxl/xl_cmdimpl.c
> @@ -570,8 +570,6 @@ static void parse_disk_config_multistring(XLU_Config **config,
>  {
>      int e;
>
> -    libxl_device_disk_init(disk);
> -
>      if (!*config) {
>          *config = xlu_cfg_init(stderr, "command line");
>          if (!*config) { perror("xlu_cfg_init"); exit(-1); }
> @@ -3340,6 +3338,8 @@ static int cd_insert(uint32_t domid, const char *virtdev, char *phys)
>      xasprintf(&buf, "vdev=%s,access=r,devtype=cdrom,target=%s",
>                virtdev, phys ? phys : "");
>
> +    libxl_device_disk_init(&disk);
> +
>      parse_disk_config(&config, buf, &disk);
>
>      /* ATM the existence of the backing file is not checked for qdisk
> @@ -6649,6 +6649,7 @@ int main_blockattach(int argc, char **argv)
>      uint32_t fe_domid;
>      libxl_device_disk disk;
>      XLU_Config *config = 0;
> +    int rc = 0;
>
>      SWITCH_FOREACH_OPT(opt, "", NULL, "block-attach", 2) {
>          /* No options */
> @@ -6660,6 +6661,8 @@ int main_blockattach(int argc, char **argv)
>      }
>      optind++;
>
> +    libxl_device_disk_init(&disk);
> +
>      parse_disk_config_multistring
>          (&config, argc-optind, (const char* const*)argv + optind, &disk);
>
> @@ -6668,14 +6671,17 @@ int main_blockattach(int argc, char **argv)
>          printf("disk: %s\n", json);
>          free(json);
>          if (ferror(stdout) || fflush(stdout)) { perror("stdout"); exit(-1); }
> -        return 0;
> +        goto out;
>      }
>
>      if (libxl_device_disk_add(ctx, fe_domid, &disk, 0)) {
>          fprintf(stderr, "libxl_device_disk_add failed.\n");
> -        return 1;
> +        rc = 1;
>      }
> -    return 0;
> +out:
> +    libxl_device_disk_dispose(&disk);
> +
> +    return rc;
>  }
>
>  int main_blocklist(int argc, char **argv)
> @@ -6726,18 +6732,23 @@ int main_blockdetach(int argc, char **argv)
>          /* No options */
>      }
>
> +    libxl_device_disk_init(&disk);
> +
>      domid = find_domain(argv[optind]);
>
>      if (libxl_vdev_to_device_disk(ctx, domid, argv[optind+1], &disk)) {
>          fprintf(stderr, "Error: Device %s not connected.\n", argv[optind+1]);
> -        return 1;
> +        rc = 1;
> +        goto out;
>      }
> -    rc = libxl_device_disk_remove(ctx, domid, &disk, 0);
> -    if (rc) {
> +    if (libxl_device_disk_remove(ctx, domid, &disk, 0)) {
>          fprintf(stderr, "libxl_device_disk_remove failed.\n");
> -        return 1;
> +        rc = 1;
>      }
> +
> +out:
>      libxl_device_disk_dispose(&disk);
> +
>      return rc;
>  }
>
> --
> 2.1.4
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

  parent reply	other threads:[~2015-12-08 12:24 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-01 11:53 [PATCH v3 1/6] xl: Return proper error codes for block-attach and block-detach George Dunlap
2015-12-01 11:53 ` [PATCH v3 2/6] libxl: Fix libxl_set_memory_target return value George Dunlap
2015-12-08 17:19   ` Ian Campbell
2015-12-08 17:25     ` George Dunlap
2015-12-01 11:53 ` [PATCH v3 3/6] xl: Make set_memory_target return an error code on failure George Dunlap
2015-12-08 17:28   ` Ian Campbell
2015-12-01 11:53 ` [PATCH v3 4/6] xl: Return an error on failed cd-insert George Dunlap
2015-12-08 17:29   ` Ian Campbell
2015-12-01 11:53 ` [PATCH v3 5/6] xl: Return error codes for pci* commands George Dunlap
2015-12-08 17:32   ` Ian Campbell
2015-12-01 11:53 ` [PATCH v3 6/6] xl: Return error code on save George Dunlap
2015-12-08 17:38   ` Ian Campbell
2015-12-16 18:25   ` George Dunlap
2015-12-08 12:24 ` George Dunlap [this message]
2015-12-08 17:15 ` [PATCH v3 1/6] xl: Return proper error codes for block-attach and block-detach Ian Campbell
2015-12-16 16:53   ` George Dunlap
2015-12-16 17:13     ` George Dunlap
2016-01-04 14:30   ` Wei Liu

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='CAFLBxZYKGKX0Sx86amtxPTy9UM4ogTFRWwGhzG=dcjcGLom-ng@mail.gmail.com' \
    --to=george.dunlap@eu.citrix.com \
    --cc=ian.campbell@citrix.com \
    --cc=ian.jackson@citrix.com \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xen.org \
    /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.