[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 21/29] block/export: Add BLOCK_EXPORT_DELETED event
From: |
Max Reitz |
Subject: |
Re: [PATCH 21/29] block/export: Add BLOCK_EXPORT_DELETED event |
Date: |
Wed, 16 Sep 2020 16:57:35 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 |
On 07.09.20 20:20, Kevin Wolf wrote:
> Clients may want to know when an export has finally disappeard
> (block-export-del returns earlier than that in the general case), so add
> a QAPI event for it.
>
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
> qapi/block-export.json | 12 ++++++++++++
> block/export/export.c | 2 ++
> tests/qemu-iotests/140.out | 1 +
> tests/qemu-iotests/223.out | 4 ++++
> 4 files changed, 19 insertions(+)
>
> diff --git a/qapi/block-export.json b/qapi/block-export.json
> index 77a6b595e8..dac3250f08 100644
> --- a/qapi/block-export.json
> +++ b/qapi/block-export.json
> @@ -233,3 +233,15 @@
> ##
> { 'command': 'block-export-del',
> 'data': { 'id': 'str', '*mode': 'BlockExportRemoveMode' } }
> +
> +##
> +# @BLOCK_EXPORT_DELETED:
> +#
> +# Emitted when a block export is removed and it's id can be reused.
> +#
> +# @id: Block export id.
> +#
> +# Since: 5.2
> +##
> +{ 'event': 'BLOCK_EXPORT_DELETED',
> + 'data': { 'id': 'str' } }
> diff --git a/block/export/export.c b/block/export/export.c
> index 4af3b69186..ae7879e6a9 100644
> --- a/block/export/export.c
> +++ b/block/export/export.c
> @@ -19,6 +19,7 @@
> #include "block/nbd.h"
> #include "qapi/error.h"
> #include "qapi/qapi-commands-block-export.h"
> +#include "qapi/qapi-events-block-export.h"
> #include "qemu/id.h"
>
> static const BlockExportDriver *blk_exp_drivers[] = {
> @@ -113,6 +114,7 @@ static void blk_exp_delete_bh(void *opaque)
> assert(exp->refcount == 0);
> QLIST_REMOVE(exp, next);
> exp->drv->delete(exp);
> + qapi_event_send_block_export_deleted(exp->id);
> g_free(exp->id);
> g_free(exp);
>
> diff --git a/tests/qemu-iotests/140.out b/tests/qemu-iotests/140.out
> index 86b985da75..f1db409b26 100644
> --- a/tests/qemu-iotests/140.out
> +++ b/tests/qemu-iotests/140.out
> @@ -15,6 +15,7 @@ read 65536/65536 bytes at offset 0
> qemu-io: can't open device nbd+unix:///drv?socket=SOCK_DIR/nbd: Requested
> export not available
> server reported: export 'drv' not present
> { 'execute': 'quit' }
> +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event":
> "BLOCK_EXPORT_DELETED", "data": {"id": "drv"}}
> {"return": {}}
> {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event":
> "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
> *** done
With -qed, this event appears immediately when the drive is ejected, so
this test now fails (for qed).
I’m not sure whether there’s much of a point in fixing it or just
marking qed as unsupported.
Max
signature.asc
Description: OpenPGP digital signature
- Re: [PATCH 17/29] block/export: Add blk_exp_close_all(_type), (continued)
- [PATCH 19/29] block/export: Move strong user reference to block_exports, Kevin Wolf, 2020/09/07
- [PATCH 20/29] block/export: Add block-export-del, Kevin Wolf, 2020/09/07
- [PATCH 18/29] block/export: Add 'id' option to block-export-add, Kevin Wolf, 2020/09/07
- [PATCH 21/29] block/export: Add BLOCK_EXPORT_DELETED event, Kevin Wolf, 2020/09/07
- [PATCH 23/29] block/export: Create BlockBackend in blk_exp_add(), Kevin Wolf, 2020/09/07
- [PATCH 24/29] block/export: Add query-block-exports, Kevin Wolf, 2020/09/07
- [PATCH 22/29] block/export: Move blk to BlockExport, Kevin Wolf, 2020/09/07
- [PATCH 25/29] block/export: Move writable to BlockExportOptions, Kevin Wolf, 2020/09/07
- [PATCH 27/29] nbd: Deprecate nbd-server-add/remove, Kevin Wolf, 2020/09/07