qemu-block
[Top][All Lists]
Advanced

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

Re: [Qemu-block] [PATCH v3 2/8] nbd: Forbid nbd-server-stop when server


From: Vladimir Sementsov-Ogievskiy
Subject: Re: [Qemu-block] [PATCH v3 2/8] nbd: Forbid nbd-server-stop when server is not running
Date: Mon, 14 Jan 2019 08:39:07 +0000

11.01.2019 22:47, Eric Blake wrote:
> Since we already forbid other nbd-server commands when not
> in the right state, it is unlikely that any caller was relying
> on a second stop to behave as a silent no-op.  Update iotest
> 223 to show the improved behavior.
> 
> Signed-off-by: Eric Blake <address@hidden>


Reviewed-by: Vladimir Sementsov-Ogievskiy <address@hidden>

> 
> ---
> v3: new patch
> ---
>   blockdev-nbd.c             | 5 +++++
>   tests/qemu-iotests/223     | 2 +-
>   tests/qemu-iotests/223.out | 2 +-
>   3 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/blockdev-nbd.c b/blockdev-nbd.c
> index 1d170c80b82..ca584919194 100644
> --- a/blockdev-nbd.c
> +++ b/blockdev-nbd.c
> @@ -214,6 +214,11 @@ void qmp_nbd_server_remove(const char *name,
> 
>   void qmp_nbd_server_stop(Error **errp)
>   {
> +    if (!nbd_server) {
> +        error_setg(errp, "NBD server not running");
> +        return;
> +    }

yes, exactly like in qmp_nbd_server_remove

> +
>       nbd_export_close_all();
> 
>       nbd_server_free(nbd_server);
> diff --git a/tests/qemu-iotests/223 b/tests/qemu-iotests/223
> index 61b46a2f066..a4016091b21 100755
> --- a/tests/qemu-iotests/223
> +++ b/tests/qemu-iotests/223
> @@ -172,7 +172,7 @@ _send_qemu_cmd $QEMU_HANDLE 
> '{"execute":"nbd-server-remove",
>   _send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-remove",
>     "arguments":{"name":"n2"}}' "error" # Attempt duplicate clean
>   _send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-stop"}' "return"
> -_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-stop"}' "return" # Oops
> +_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-stop"}' "error" # Again

hm, interesting, but looks like the latest "return" or "error" is an extra 
thing,
we can use "}" for all qmp commands, and it worth adding _send_qmp_cmd wrapper..
But, of course, it's not about these series.

>   _send_qemu_cmd $QEMU_HANDLE '{"execute":"quit"}' "return"
> 
>   # success, all done
> diff --git a/tests/qemu-iotests/223.out b/tests/qemu-iotests/223.out
> index e6ede0591cd..8a4d63a4fc2 100644
> --- a/tests/qemu-iotests/223.out
> +++ b/tests/qemu-iotests/223.out
> @@ -69,6 +69,6 @@ read 2097152/2097152 bytes at offset 2097152
>   {"return": {}}
>   {"error": {"class": "GenericError", "desc": "Export 'n2' is not found"}}
>   {"return": {}}
> -{"return": {}}
> +{"error": {"class": "GenericError", "desc": "NBD server not running"}}
>   {"return": {}}
>   *** done
> 


-- 
Best regards,
Vladimir

reply via email to

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