[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 00/12] block/json: Add JSON protocol driver
From: |
Max Reitz |
Subject: |
[Qemu-devel] [PATCH v3 00/12] block/json: Add JSON protocol driver |
Date: |
Thu, 10 Apr 2014 20:43:31 +0200 |
This series adds a passthrough JSON protocol block driver. Its filenames
are JSON objects prefixed by "json:". The objects are used as options
for opening another block device which will be the child of the JSON
device. Regarding this child device, the JSON driver behaves nearly the
same as raw_bsd in that it is just a passthrough driver. The only
difference is probably that the JSON driver identifies itself as a block
filter, in contrast to raw_bsd.
The purpose of this driver is that it may sometimes be desirable to
specify options for a block device where only a filename can be given,
e.g., for backing files. Using this should obviously be the exception,
but it is nice to have if actually needed.
v3:
- rebased on top of Kevin's block branch
- Patch 5: bdrv_invalidate_cache() now takes an Error parameter, add it
- Patch 7: Don't use BDRV_BLOCK_RAW, but rather simply pass
bdrv_get_block_status() to the underlying block device [Benoît/Peter]
- Patch 12: Test number 084 is already taken, raise it to 089
v2:
- rebased on top of Kevin's block branch and on Benoît's patch "block:
Rewrite the snapshot authorization mechanism for block filters."
(this series now depends on this patch)
- Added patch 2: Adds test cases for the qdict_join() function
introduced by patch 1
- Added patch 3: Since Benoît changed the snapshot authorization
mechanism, there is now no easy way of detecting whether a block
filter only has a single child (which is however required for patch
11). This patch introduces such a way.
- Patch 4:
- Simplified return in json_open() [Benoît]
- Adjusted to fit the new authorization mechanism [Benoît], including
patch 3 of this series
- Patch 6: Recursive calls should go to bs->file, not bs itself
[Benoît]
- Patch 7: Added missing "*pnum = nb_sectors;" [Benoît]
- Patch 11: Adjusted to fit the new authorization mechanism [Benoît]
and especially patch 3
- Patch 12:
- Skip test if TEST_IMG contains a quotation mark [Eric]
- Omit the test number from which two of the test cases are
originally taken from the test output [Eric]
git-backport-diff against v2:
Key:
[----] : patches are identical
[####] : number of functional differences between upstream/downstream patch
[down] : patch is downstream-only
The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively
001/12:[----] [--] 'qdict: Add qdict_join()'
002/12:[----] [--] 'check-qdict: Add test for qdict_join()'
003/12:[----] [--] 'block: Add "has_single_child" field for drivers'
004/12:[----] [--] 'block/json: Add JSON protocol driver'
005/12:[0004] [FC] 'block/json: Add functions for cache control'
006/12:[----] [-C] 'block/json: Add functions for writing zeroes etc.'
007/12:[0004] [FC] 'block/json: Add bdrv_co_get_block_status()'
008/12:[----] [-C] 'block/json: Add ioctl etc.'
009/12:[----] [--] 'block/json: Add bdrv_get_specific_info()'
010/12:[----] [--] 'block/raw_bsd: Add bdrv_get_specific_info()'
011/12:[----] [--] 'block/qapi: Ignore filters on top for format name'
012/12:[0004] [FC] 'iotests: Add test for the JSON protocol'
Max Reitz (12):
qdict: Add qdict_join()
check-qdict: Add test for qdict_join()
block: Add "has_single_child" field for drivers
block/json: Add JSON protocol driver
block/json: Add functions for cache control
block/json: Add functions for writing zeroes etc.
block/json: Add bdrv_co_get_block_status()
block/json: Add ioctl etc.
block/json: Add bdrv_get_specific_info()
block/raw_bsd: Add bdrv_get_specific_info()
block/qapi: Ignore filters on top for format name
iotests: Add test for the JSON protocol
block.c | 4 +
block/Makefile.objs | 2 +-
block/json.c | 233 +++++++++++++++++++++++++++++++++++++++++++++
block/qapi.c | 18 +++-
block/raw_bsd.c | 6 ++
include/block/block_int.h | 7 ++
include/qapi/qmp/qdict.h | 3 +
qobject/qdict.c | 32 +++++++
tests/check-qdict.c | 87 +++++++++++++++++
tests/qemu-iotests/089 | 123 ++++++++++++++++++++++++
tests/qemu-iotests/089.out | 39 ++++++++
tests/qemu-iotests/group | 1 +
12 files changed, 552 insertions(+), 3 deletions(-)
create mode 100644 block/json.c
create mode 100755 tests/qemu-iotests/089
create mode 100644 tests/qemu-iotests/089.out
--
1.9.1
- [Qemu-devel] [PATCH v3 00/12] block/json: Add JSON protocol driver,
Max Reitz <=
- [Qemu-devel] [PATCH v3 01/12] qdict: Add qdict_join(), Max Reitz, 2014/04/10
- [Qemu-devel] [PATCH v3 02/12] check-qdict: Add test for qdict_join(), Max Reitz, 2014/04/10
- [Qemu-devel] [PATCH v3 03/12] block: Add "has_single_child" field for drivers, Max Reitz, 2014/04/10
- [Qemu-devel] [PATCH v3 04/12] block/json: Add JSON protocol driver, Max Reitz, 2014/04/10
- [Qemu-devel] [PATCH v3 05/12] block/json: Add functions for cache control, Max Reitz, 2014/04/10
- [Qemu-devel] [PATCH v3 06/12] block/json: Add functions for writing zeroes etc., Max Reitz, 2014/04/10
- [Qemu-devel] [PATCH v3 08/12] block/json: Add ioctl etc., Max Reitz, 2014/04/10
- [Qemu-devel] [PATCH v3 07/12] block/json: Add bdrv_co_get_block_status(), Max Reitz, 2014/04/10