qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v3 08/13] monitor/hmp: move hmp_nbd_server* to block-hmp-cmds


From: Dr. David Alan Gilbert
Subject: Re: [PATCH v3 08/13] monitor/hmp: move hmp_nbd_server* to block-hmp-cmds.c
Date: Tue, 28 Jan 2020 18:56:27 +0000
User-agent: Mutt/1.13.3 (2020-01-12)

* Maxim Levitsky (address@hidden) wrote:
> Signed-off-by: Maxim Levitsky <address@hidden>

Yes, I think that's OK; I can imagine nbd might want to move on it's own
somewhere since it's not really core block code; copying in Eric.


Reviewed-by: Dr. David Alan Gilbert <address@hidden>

> ---
>  block/monitor/block-hmp-cmds.c     | 88 ++++++++++++++++++++++++++++++
>  include/block/block-hmp-commands.h |  5 ++
>  include/monitor/hmp.h              |  4 --
>  monitor/hmp-cmds.c                 | 87 -----------------------------
>  4 files changed, 93 insertions(+), 91 deletions(-)
> 
> diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c
> index 9aa94ea6e0..df0178d0f9 100644
> --- a/block/monitor/block-hmp-cmds.c
> +++ b/block/monitor/block-hmp-cmds.c
> @@ -22,8 +22,10 @@
>  #include "qapi/qmp/qerror.h"
>  #include "qemu/config-file.h"
>  #include "qemu/option.h"
> +#include "qemu/sockets.h"
>  #include "sysemu/sysemu.h"
>  #include "monitor/monitor.h"
> +#include "block/nbd.h"
>  #include "block/block_int.h"
>  #include "block/block-hmp-commands.h"
>  #include "monitor/hmp.h"
> @@ -327,3 +329,89 @@ void hmp_snapshot_delete_blkdev_internal(Monitor *mon, 
> const QDict *qdict)
>                                                 true, name, &err);
>      hmp_handle_error(mon, err);
>  }
> +
> +void hmp_nbd_server_start(Monitor *mon, const QDict *qdict)
> +{
> +    const char *uri = qdict_get_str(qdict, "uri");
> +    bool writable = qdict_get_try_bool(qdict, "writable", false);
> +    bool all = qdict_get_try_bool(qdict, "all", false);
> +    Error *local_err = NULL;
> +    BlockInfoList *block_list, *info;
> +    SocketAddress *addr;
> +
> +    if (writable && !all) {
> +        error_setg(&local_err, "-w only valid together with -a");
> +        goto exit;
> +    }
> +
> +    /* First check if the address is valid and start the server.  */
> +    addr = socket_parse(uri, &local_err);
> +    if (local_err != NULL) {
> +        goto exit;
> +    }
> +
> +    nbd_server_start(addr, NULL, NULL, &local_err);
> +    qapi_free_SocketAddress(addr);
> +    if (local_err != NULL) {
> +        goto exit;
> +    }
> +
> +    if (!all) {
> +        return;
> +    }
> +
> +    /* Then try adding all block devices.  If one fails, close all and
> +     * exit.
> +     */
> +    block_list = qmp_query_block(NULL);
> +
> +    for (info = block_list; info; info = info->next) {
> +        if (!info->value->has_inserted) {
> +            continue;
> +        }
> +
> +        qmp_nbd_server_add(info->value->device, false, NULL,
> +                           true, writable, false, NULL, &local_err);
> +
> +        if (local_err != NULL) {
> +            qmp_nbd_server_stop(NULL);
> +            break;
> +        }
> +    }
> +
> +    qapi_free_BlockInfoList(block_list);
> +
> +exit:
> +    hmp_handle_error(mon, local_err);
> +}
> +
> +void hmp_nbd_server_add(Monitor *mon, const QDict *qdict)
> +{
> +    const char *device = qdict_get_str(qdict, "device");
> +    const char *name = qdict_get_try_str(qdict, "name");
> +    bool writable = qdict_get_try_bool(qdict, "writable", false);
> +    Error *local_err = NULL;
> +
> +    qmp_nbd_server_add(device, !!name, name, true, writable,
> +                       false, NULL, &local_err);
> +    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)
> +{
> +    Error *err = NULL;
> +
> +    qmp_nbd_server_stop(&err);
> +    hmp_handle_error(mon, err);
> +}
> diff --git a/include/block/block-hmp-commands.h 
> b/include/block/block-hmp-commands.h
> index 3fc2daf3a9..721b9a1978 100644
> --- a/include/block/block-hmp-commands.h
> +++ b/include/block/block-hmp-commands.h
> @@ -21,4 +21,9 @@ void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict);
>  void hmp_snapshot_blkdev_internal(Monitor *mon, const QDict *qdict);
>  void hmp_snapshot_delete_blkdev_internal(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);
> +
>  #endif
> diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h
> index 6d34e29bb6..736a969131 100644
> --- a/include/monitor/hmp.h
> +++ b/include/monitor/hmp.h
> @@ -94,10 +94,6 @@ void hmp_getfd(Monitor *mon, const QDict *qdict);
>  void hmp_closefd(Monitor *mon, const QDict *qdict);
>  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);
>  void hmp_chardev_remove(Monitor *mon, const QDict *qdict);
> diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c
> index 46b46b6dd7..67d2ca8a4c 100644
> --- a/monitor/hmp-cmds.c
> +++ b/monitor/hmp-cmds.c
> @@ -45,7 +45,6 @@
>  #include "qapi/string-output-visitor.h"
>  #include "qom/object_interfaces.h"
>  #include "ui/console.h"
> -#include "block/nbd.h"
>  #include "block/qapi.h"
>  #include "qemu-io.h"
>  #include "qemu/cutils.h"
> @@ -2154,92 +2153,6 @@ void hmp_screendump(Monitor *mon, const QDict *qdict)
>      hmp_handle_error(mon, err);
>  }
>  
> -void hmp_nbd_server_start(Monitor *mon, const QDict *qdict)
> -{
> -    const char *uri = qdict_get_str(qdict, "uri");
> -    bool writable = qdict_get_try_bool(qdict, "writable", false);
> -    bool all = qdict_get_try_bool(qdict, "all", false);
> -    Error *local_err = NULL;
> -    BlockInfoList *block_list, *info;
> -    SocketAddress *addr;
> -
> -    if (writable && !all) {
> -        error_setg(&local_err, "-w only valid together with -a");
> -        goto exit;
> -    }
> -
> -    /* First check if the address is valid and start the server.  */
> -    addr = socket_parse(uri, &local_err);
> -    if (local_err != NULL) {
> -        goto exit;
> -    }
> -
> -    nbd_server_start(addr, NULL, NULL, &local_err);
> -    qapi_free_SocketAddress(addr);
> -    if (local_err != NULL) {
> -        goto exit;
> -    }
> -
> -    if (!all) {
> -        return;
> -    }
> -
> -    /* Then try adding all block devices.  If one fails, close all and
> -     * exit.
> -     */
> -    block_list = qmp_query_block(NULL);
> -
> -    for (info = block_list; info; info = info->next) {
> -        if (!info->value->has_inserted) {
> -            continue;
> -        }
> -
> -        qmp_nbd_server_add(info->value->device, false, NULL,
> -                           true, writable, false, NULL, &local_err);
> -
> -        if (local_err != NULL) {
> -            qmp_nbd_server_stop(NULL);
> -            break;
> -        }
> -    }
> -
> -    qapi_free_BlockInfoList(block_list);
> -
> -exit:
> -    hmp_handle_error(mon, local_err);
> -}
> -
> -void hmp_nbd_server_add(Monitor *mon, const QDict *qdict)
> -{
> -    const char *device = qdict_get_str(qdict, "device");
> -    const char *name = qdict_get_try_str(qdict, "name");
> -    bool writable = qdict_get_try_bool(qdict, "writable", false);
> -    Error *local_err = NULL;
> -
> -    qmp_nbd_server_add(device, !!name, name, true, writable,
> -                       false, NULL, &local_err);
> -    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)
> -{
> -    Error *err = NULL;
> -
> -    qmp_nbd_server_stop(&err);
> -    hmp_handle_error(mon, err);
> -}
> -
>  void hmp_chardev_add(Monitor *mon, const QDict *qdict)
>  {
>      const char *args = qdict_get_str(qdict, "args");
> -- 
> 2.17.2
> 
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK




reply via email to

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