All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Eric Blake <eblake@redhat.com>
Cc: qemu-devel@nongnu.org, vsementsov@virtuozzo.com, qemu-block@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] hmp: Add nbd_server_remove to mirror QMP command
Date: Fri, 26 Jan 2018 12:16:38 +0000	[thread overview]
Message-ID: <20180126121637.GC2610@work-vm> (raw)
In-Reply-To: <20180125144557.25502-1-eblake@redhat.com>

* Eric Blake (eblake@redhat.com) wrote:
> Since everything else about the nbd-server-* QMP commands is
> accessible from HMP, we might as well make removing an export
> available as well.  For now, I went with a bool flag rather
> than a mode string for choosing between safe (default) and
> hard modes.
> 
> Signed-off-by: Eric Blake <eblake@redhat.com>

For the HMP side of things:
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

and yes, if you've already got the rest of it on your NBD queue
just add this one into your queue.

Dave
> ---
> 
> Based-on: <20180119135719.24745-1-vsementsov@virtuozzo.com>
> ([PATCH v3 0/5] nbd export qmp interface)
> 
>  hmp.h           |  1 +
>  hmp.c           | 14 +++++++++++---
>  hmp-commands.hx | 17 +++++++++++++++++
>  3 files changed, 29 insertions(+), 3 deletions(-)
> 
> diff --git a/hmp.h b/hmp.h
> index a6f56b1f29e..536cb91caa4 100644
> --- a/hmp.h
> +++ b/hmp.h
> @@ -101,6 +101,7 @@ void hmp_sendkey(Monitor *mon, const QDict *qdict);
>  void hmp_screendump(Monitor *mon, const QDict *qdict);
>  void hmp_nbd_server_start(Monitor *mon, const QDict *qdict);
>  void hmp_nbd_server_add(Monitor *mon, const QDict *qdict);
> +void hmp_nbd_server_remove(Monitor *mon, const QDict *qdict);
>  void hmp_nbd_server_stop(Monitor *mon, const QDict *qdict);
>  void hmp_chardev_add(Monitor *mon, const QDict *qdict);
>  void hmp_chardev_change(Monitor *mon, const QDict *qdict);
> diff --git a/hmp.c b/hmp.c
> index 7a64dd59c5c..b3de32d219b 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -2226,10 +2226,18 @@ void hmp_nbd_server_add(Monitor *mon, const QDict *qdict)
>      Error *local_err = NULL;
> 
>      qmp_nbd_server_add(device, !!name, name, true, writable, &local_err);
> +    hmp_handle_error(mon, &local_err);
> +}
> 
> -    if (local_err != NULL) {
> -        hmp_handle_error(mon, &local_err);
> -    }
> +void hmp_nbd_server_remove(Monitor *mon, const QDict *qdict)
> +{
> +    const char *name = qdict_get_str(qdict, "name");
> +    bool force = qdict_get_try_bool(qdict, "force", false);
> +    Error *err = NULL;
> +
> +    /* Rely on NBD_SERVER_REMOVE_MODE_SAFE being the default */
> +    qmp_nbd_server_remove(name, force, NBD_SERVER_REMOVE_MODE_HARD, &err);
> +    hmp_handle_error(mon, &err);
>  }
> 
>  void hmp_nbd_server_stop(Monitor *mon, const QDict *qdict)
> diff --git a/hmp-commands.hx b/hmp-commands.hx
> index b8b6fb91848..8a59338bc20 100644
> --- a/hmp-commands.hx
> +++ b/hmp-commands.hx
> @@ -1565,6 +1565,23 @@ Export a block device through QEMU's NBD server, which must be started
>  beforehand with @command{nbd_server_start}.  The @option{-w} option makes the
>  exported device writable too.  The export name is controlled by @var{name},
>  defaulting to @var{device}.
> +ETEXI
> +
> +    {
> +        .name       = "nbd_server_remove",
> +        .args_type  = "force:-f,name:s",
> +        .params     = "nbd_server_remove [-f] name",
> +        .help       = "remove an export previously exposed via NBD",
> +        .cmd        = hmp_nbd_server_remove,
> +    },
> +STEXI
> +@item nbd_server_remove [-f] @var{name}
> +@findex nbd_server_remove
> +Stop exporting a block device through QEMU's NBD server, which was
> +previously started with @command{nbd_server_add}.  The @option{-f}
> +option forces the server to drop the export immediately even if
> +clients are connected; otherwise the command fails unless there are no
> +clients.
>  ETEXI
> 
>      {
> -- 
> 2.14.3
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK

  parent reply	other threads:[~2018-01-26 15:55 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-25 14:45 [Qemu-devel] [PATCH] hmp: Add nbd_server_remove to mirror QMP command Eric Blake
2018-01-25 15:01 ` Eric Blake
2018-01-26 12:16 ` Dr. David Alan Gilbert [this message]
2018-01-29 15:13 ` [Qemu-devel] [Qemu-block] " Kevin Wolf

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=20180126121637.GC2610@work-vm \
    --to=dgilbert@redhat.com \
    --cc=eblake@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=vsementsov@virtuozzo.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.