[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 13/21] blockdev: add qmp_change_blockdev_int()
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH 13/21] blockdev: add qmp_change_blockdev_int() |
Date: |
Mon, 18 Nov 2013 13:25:23 +0100 |
From: Marc-André Lureau <address@hidden>
Allow to pass additional arguments, such as options and opaque
Signed-off-by: Marc-André Lureau <address@hidden>
---
blockdev.c | 24 +++++++++++++++++++-----
include/sysemu/blockdev.h | 3 +++
2 files changed, 22 insertions(+), 5 deletions(-)
diff --git a/blockdev.c b/blockdev.c
index b8db544..f2c3c4e 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -1498,12 +1498,13 @@ void qmp_block_passwd(const char *device, const char
*password, Error **errp)
static void qmp_bdrv_open_encrypted(BlockDriverState *bs, const char *filename,
int bdrv_flags, BlockDriver *drv,
- const char *password, Error **errp)
+ const char *password, QDict *options,
+ Error **errp)
{
Error *local_err = NULL;
int ret;
- ret = bdrv_open(bs, filename, NULL, bdrv_flags, drv, &local_err);
+ ret = bdrv_open(bs, filename, options, bdrv_flags, drv, &local_err);
if (ret < 0) {
error_propagate(errp, local_err);
return;
@@ -1523,8 +1524,9 @@ static void qmp_bdrv_open_encrypted(BlockDriverState *bs,
const char *filename,
}
}
-void qmp_change_blockdev(const char *device, const char *filename,
- const char *format, Error **errp)
+void qmp_change_blockdev_int(const char *device, const char *filename,
+ const char *format, QDict *options, void *opaque,
+ Error **errp)
{
BlockDriverState *bs;
BlockDriver *drv = NULL;
@@ -1554,7 +1556,19 @@ void qmp_change_blockdev(const char *device, const char
*filename,
bdrv_flags = bdrv_is_read_only(bs) ? 0 : BDRV_O_RDWR;
bdrv_flags |= bdrv_is_snapshot(bs) ? BDRV_O_SNAPSHOT : 0;
- qmp_bdrv_open_encrypted(bs, filename, bdrv_flags, drv, NULL, errp);
+ if (bs->opaque) {
+ error_set(errp, QERR_INVALID_PARAMETER, device);
+ return;
+ }
+ bs->opaque = opaque;
+
+ qmp_bdrv_open_encrypted(bs, filename, bdrv_flags, drv, NULL, options,
errp);
+}
+
+void qmp_change_blockdev(const char *device, const char *filename,
+ const char *format, Error **errp)
+{
+ qmp_change_blockdev_int(device, filename, format, NULL, NULL, errp);
}
/* throttling disk I/O limits */
diff --git a/include/sysemu/blockdev.h b/include/sysemu/blockdev.h
index 134712b..5ce4997 100644
--- a/include/sysemu/blockdev.h
+++ b/include/sysemu/blockdev.h
@@ -65,6 +65,9 @@ DriveInfo *add_init_drive(const char *opts);
void qmp_change_blockdev(const char *device, const char *filename,
const char *format, Error **errp);
+void qmp_change_blockdev_int(const char *device, const char *filename,
+ const char *format, QDict *options, void *opaque,
+ Error **errp);
void do_commit(Monitor *mon, const QDict *qdict);
int do_drive_del(Monitor *mon, const QDict *qdict, QObject **ret_data);
#endif
--
1.8.3.1
- [Qemu-devel] [PATCH 04/21] include: add missing config-host.h include, (continued)
- [Qemu-devel] [PATCH 04/21] include: add missing config-host.h include, Marc-André Lureau, 2013/11/18
- [Qemu-devel] [PATCH 05/21] char: add qemu_chr_fe_event(), Marc-André Lureau, 2013/11/18
- [Qemu-devel] [PATCH 06/21] Split nbd block client code, Marc-André Lureau, 2013/11/18
- [Qemu-devel] [PATCH 07/21] nbd: don't change socket block during negotiate, Marc-André Lureau, 2013/11/18
- [Qemu-devel] [PATCH 08/21] nbd: pass export name as init argument, Marc-André Lureau, 2013/11/18
- [Qemu-devel] [PATCH 09/21] nbd: make session_close() idempotent, Marc-André Lureau, 2013/11/18
- [Qemu-devel] [PATCH 10/21] nbd: finish any pending coroutine, Marc-André Lureau, 2013/11/18
- [Qemu-devel] [PATCH 11/21] nbd: avoid uninitialized warnings, Marc-André Lureau, 2013/11/18
- [Qemu-devel] [PATCH 12/21] block: save the associated child name in BlockDriverState, Marc-André Lureau, 2013/11/18
- [Qemu-devel] [PATCH 13/21] blockdev: add qmp_change_blockdev_int(),
Marc-André Lureau <=
- [Qemu-devel] [PATCH 14/21] block: extract make_snapshot() from bdrv_open(), Marc-André Lureau, 2013/11/18
- [Qemu-devel] [PATCH 15/21] block: add "snapshot.size" option to avoid extra bdrv_open(), Marc-André Lureau, 2013/11/18
- [Qemu-devel] [PATCH 16/21] block: learn to open a driver with a given opaque, Marc-André Lureau, 2013/11/18
- [Qemu-devel] [PATCH 17/21] block: allow to call bdrv_open() with an opaque, Marc-André Lureau, 2013/11/18
- [Qemu-devel] [PATCH 18/21] block: do not notify change during migration, Marc-André Lureau, 2013/11/18
- [Qemu-devel] [PATCH 19/21] sysemu: add vm_start_hold/release, Marc-André Lureau, 2013/11/18
- [Qemu-devel] [PATCH 20/21] spice-core: allow an interface to be in AIO context, Marc-André Lureau, 2013/11/18
- [Qemu-devel] [PATCH 21/21] block: add spice block device backend, Marc-André Lureau, 2013/11/18