[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PULL 36/42] block: Allow node name for 'qemu-io' HMP c
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-block] [PULL 36/42] block: Allow node name for 'qemu-io' HMP command |
Date: |
Fri, 16 Sep 2016 00:18:08 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 |
On 05/09/2016 20:13, Kevin Wolf wrote:
> When using a node name, create a temporary BlockBackend that is used to
> run the qemu-io command.
>
> Signed-off-by: Kevin Wolf <address@hidden>
> Reviewed-by: Eric Blake <address@hidden>
> ---
> hmp.c | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/hmp.c b/hmp.c
> index a7dfe6f..ad33b44 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -1923,11 +1923,22 @@ void hmp_chardev_remove(Monitor *mon, const QDict
> *qdict)
> void hmp_qemu_io(Monitor *mon, const QDict *qdict)
> {
> BlockBackend *blk;
> + BlockBackend *local_blk = NULL;
> const char* device = qdict_get_str(qdict, "device");
> const char* command = qdict_get_str(qdict, "command");
> Error *err = NULL;
>
> blk = blk_by_name(device);
> + if (!blk) {
> + BlockDriverState *bs = bdrv_lookup_bs(NULL, device, &err);
> + if (bs) {
> + blk = local_blk = blk_new();
> + blk_insert_bs(blk, bs);
> + } else {
> + goto fail;
> + }
> + }
> +
> if (blk) {
Coverity notes that this "if" is now always taken.
Thanks,
Paolo
> AioContext *aio_context = blk_get_aio_context(blk);
> aio_context_acquire(aio_context);
> @@ -1940,6 +1951,8 @@ void hmp_qemu_io(Monitor *mon, const QDict *qdict)
> "Device '%s' not found", device);
> }
>
> +fail:
> + blk_unref(local_blk);
> hmp_handle_error(mon, &err);
> }
>
>
- [Qemu-block] [PULL 26/42] drive-backup: added support for data compression, (continued)
- [Qemu-block] [PULL 26/42] drive-backup: added support for data compression, Kevin Wolf, 2016/09/05
- [Qemu-block] [PULL 27/42] blockdev-backup: added support for data compression, Kevin Wolf, 2016/09/05
- [Qemu-block] [PULL 30/42] test-coroutine: Fix coroutine pool corruption, Kevin Wolf, 2016/09/05
- [Qemu-block] [PULL 32/42] coroutine: Let CoMutex remember who holds it, Kevin Wolf, 2016/09/05
- [Qemu-block] [PULL 31/42] qcow2: fix iovec size at qcow2_co_pwritev_compressed, Kevin Wolf, 2016/09/05
- [Qemu-block] [PULL 34/42] block jobs: Improve error message for missing job ID, Kevin Wolf, 2016/09/05
- [Qemu-block] [PULL 35/42] qemu-iotests: Log QMP traffic in debug mode, Kevin Wolf, 2016/09/05
- [Qemu-block] [PULL 36/42] block: Allow node name for 'qemu-io' HMP command, Kevin Wolf, 2016/09/05
- Re: [Qemu-block] [PULL 36/42] block: Allow node name for 'qemu-io' HMP command,
Paolo Bonzini <=
- [Qemu-block] [PULL 38/42] coroutine: add a macro for the coroutine stack size, Kevin Wolf, 2016/09/05
- [Qemu-block] [PULL 37/42] oslib-posix: add helpers for stack alloc and free, Kevin Wolf, 2016/09/05
- [Qemu-block] [PULL 33/42] coroutine: Assert that no locks are held on termination, Kevin Wolf, 2016/09/05
- [Qemu-block] [PULL 40/42] coroutine-sigaltstack: use helper for allocating stack memory, Kevin Wolf, 2016/09/05
- [Qemu-block] [PULL 39/42] coroutine-ucontext: use helper for allocating stack memory, Kevin Wolf, 2016/09/05
- [Qemu-block] [PULL 41/42] oslib-posix: add a configure switch to debug stack usage, Kevin Wolf, 2016/09/05
- [Qemu-block] [PULL 42/42] coroutine: reduce stack size to 64kB, Kevin Wolf, 2016/09/05
- Re: [Qemu-block] [Qemu-devel] [PULL 00/42] Block layer patches, Peter Maydell, 2016/09/06