[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
- Re: [PATCH v3 04/13] monitor/hmp: move hmp_drive_del and hmp_commit to block-hmp-cmds.c, (continued)
- [PATCH v3 05/13] monitor/hmp: move hmp_drive_mirror and hmp_drive_backup to block-hmp-cmds.c, Maxim Levitsky, 2020/01/27
- [PATCH v3 06/13] monitor/hmp: move hmp_block_job* to block-hmp-cmds.c, Maxim Levitsky, 2020/01/27
- [PATCH v3 07/13] monitor/hmp: move hmp_snapshot_* to block-hmp-cmds.c, Maxim Levitsky, 2020/01/27
- [PATCH v3 08/13] monitor/hmp: move hmp_nbd_server* to block-hmp-cmds.c, Maxim Levitsky, 2020/01/27
- Re: [PATCH v3 08/13] monitor/hmp: move hmp_nbd_server* to block-hmp-cmds.c,
Dr. David Alan Gilbert <=
- [PATCH v3 09/13] monitor/hmp: move remaining hmp_block* functions to block-hmp-cmds.c, Maxim Levitsky, 2020/01/27
- [PATCH v3 11/13] monitor: Move hmp_drive_add_node to block-hmp-cmds.c, Maxim Levitsky, 2020/01/27
- [PATCH v3 10/13] monitor/hmp: move hmp_info_block* to block-hmp-cmds.c, Maxim Levitsky, 2020/01/27
- [PATCH v3 13/13] monitor/hmp: Prefer to use hmp_handle_error for error reporting in block hmp commands, Maxim Levitsky, 2020/01/27