qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3 0/7] block: Handle null backing link
@ 2018-02-24 15:40 Max Reitz
  2018-02-24 15:40 ` [Qemu-devel] [PATCH v3 1/7] compiler: Add QEMU_BUILD_BUG_MSG() macro Max Reitz
                   ` (14 more replies)
  0 siblings, 15 replies; 33+ messages in thread
From: Max Reitz @ 2018-02-24 15:40 UTC (permalink / raw)
  To: qemu-block
  Cc: qemu-devel, Max Reitz, Markus Armbruster, Eric Blake,
	Alberto Garcia, Michael Roth

Currently, we try to rewrite every occurrence of "backing": null into
"backing": "" in qmp_blockdev_add().  However, that breaks using the
same "backing": null construction in json:{} file names (which do not go
through qmp_blockdev_add()).  Currently, these then just behave as if
the option has not been specified.

Since there is actually only one place where we evaluate the @backing
option to find out whether not to use a backing file, we can instead
just check for null there.  It doesn't matter that this changes the
runtime state of the option from "" to null, because nobody really does
anything with that runtime state anyway (except put it into qemu again,
but qemu doesn't care whether it's "" or null).

And in the future, it's much better if we get it to be null in that
runtime state sooner than later -- see patch 7.


Note that it was Markus (who's away having a good time, I hope) who
proposed qobject_to(), so I guess he won't object too much to seeing the
concept having landed in his tree once he returns.
(Although he hasn't reviewed the previous iteration of this series,
 which included it already.)


v3:
- Added patch 1 so we can use a common macro in patch 2 (instead of
  invoking _Static_assert() directly), but still keep the explanatory
  message


git-backport-diff against v1:

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/7:[down] 'compiler: Add QEMU_BUILD_BUG_MSG() macro'
002/7:[0006] [FC] 'qapi: Add qobject_to()'
003/7:[----] [--] 'qapi: Replace qobject_to_X(o) by qobject_to(o, X)'
004/7:[----] [-C] 'qapi: Remove qobject_to_X() functions'
005/7:[----] [--] 'qapi: Make more of qobject_to()'
006/7:[----] [--] 'block: Handle null backing link'
007/7:[----] [-C] 'block: Deprecate "backing": ""'


Max Reitz (7):
  compiler: Add QEMU_BUILD_BUG_MSG() macro
  qapi: Add qobject_to()
  qapi: Replace qobject_to_X(o) by qobject_to(o, X)
  qapi: Remove qobject_to_X() functions
  qapi: Make more of qobject_to()
  block: Handle null backing link
  block: Deprecate "backing": ""

 qapi/block-core.json                |  4 +--
 include/qapi/qmp/qbool.h            |  1 -
 include/qapi/qmp/qdict.h            |  1 -
 include/qapi/qmp/qlist.h            |  1 -
 include/qapi/qmp/qnum.h             |  1 -
 include/qapi/qmp/qobject.h          | 30 +++++++++++++++++
 include/qapi/qmp/qstring.h          |  1 -
 include/qemu/compiler.h             | 12 +++++--
 block.c                             | 10 ++++--
 block/qapi.c                        | 12 +++----
 block/rbd.c                         |  8 ++---
 blockdev.c                          | 21 +++---------
 hw/i386/acpi-build.c                | 14 ++++----
 monitor.c                           |  8 ++---
 qapi/qmp-dispatch.c                 |  2 +-
 qapi/qobject-input-visitor.c        | 24 +++++++-------
 qapi/qobject-output-visitor.c       |  4 +--
 qga/main.c                          |  2 +-
 qmp.c                               |  2 +-
 qobject/json-parser.c               | 13 ++++----
 qobject/qbool.c                     | 15 ++-------
 qobject/qdict.c                     | 65 ++++++++++++++++---------------------
 qobject/qjson.c                     | 10 +++---
 qobject/qlist.c                     | 17 ++--------
 qobject/qlit.c                      | 10 +++---
 qobject/qnum.c                      | 17 ++--------
 qobject/qstring.c                   | 17 ++--------
 qom/object.c                        |  8 ++---
 target/i386/cpu.c                   |  2 +-
 target/s390x/cpu_models.c           |  2 +-
 tests/check-qdict.c                 | 20 ++++++------
 tests/check-qjson.c                 | 41 +++++++++++------------
 tests/check-qlist.c                 |  4 +--
 tests/check-qlit.c                  |  2 +-
 tests/check-qnum.c                  |  4 +--
 tests/check-qobject.c               |  2 +-
 tests/check-qstring.c               |  2 +-
 tests/device-introspect-test.c      | 14 ++++----
 tests/libqtest.c                    |  6 ++--
 tests/numa-test.c                   |  8 ++---
 tests/qom-test.c                    |  4 +--
 tests/test-char.c                   |  2 +-
 tests/test-keyval.c                 |  8 ++---
 tests/test-qga.c                    | 19 ++++++-----
 tests/test-qmp-commands.c           | 12 +++----
 tests/test-qmp-event.c              | 16 ++++-----
 tests/test-qobject-input-visitor.c  | 10 +++---
 tests/test-qobject-output-visitor.c | 54 +++++++++++++++---------------
 tests/test-x86-cpuid-compat.c       | 17 +++++-----
 util/keyval.c                       |  4 +--
 util/qemu-config.c                  |  2 +-
 util/qemu-option.c                  |  6 ++--
 qemu-doc.texi                       |  7 ++++
 qemu-options.hx                     |  4 +--
 tests/qemu-iotests/089              | 20 ++++++++++++
 tests/qemu-iotests/089.out          |  8 +++++
 56 files changed, 320 insertions(+), 310 deletions(-)

-- 
2.14.3

^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2018-03-19 19:38 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-24 15:40 [Qemu-devel] [PATCH v3 0/7] block: Handle null backing link Max Reitz
2018-02-24 15:40 ` [Qemu-devel] [PATCH v3 1/7] compiler: Add QEMU_BUILD_BUG_MSG() macro Max Reitz
2018-02-24 20:08   ` Eric Blake
2018-02-27 13:33   ` Alberto Garcia
2018-02-24 15:40 ` [Qemu-devel] [PATCH v3 2/7] qapi: Add qobject_to() Max Reitz
2018-02-24 20:57   ` Eric Blake
2018-02-26 11:58     ` Max Reitz
2018-03-19 19:36       ` Eric Blake
2018-03-19 19:38         ` Max Reitz
2018-02-27 13:45   ` Alberto Garcia
2018-02-24 15:40 ` [Qemu-devel] [PATCH v3 3/7] qapi: Replace qobject_to_X(o) by qobject_to(o, X) Max Reitz
2018-02-24 21:04   ` Eric Blake
2018-02-26 12:01     ` Max Reitz
2018-02-27 14:47       ` Eric Blake
2018-02-28 18:08         ` Max Reitz
2018-03-10 21:48           ` Eric Blake
2018-02-24 15:40 ` [Qemu-devel] [PATCH v3 4/7] qapi: Remove qobject_to_X() functions Max Reitz
2018-02-24 21:05   ` Eric Blake
2018-02-24 15:40 ` [Qemu-devel] [PATCH v3 5/7] qapi: Make more of qobject_to() Max Reitz
2018-02-24 21:07   ` Eric Blake
2018-02-24 15:40 ` [Qemu-devel] [PATCH v3 6/7] block: Handle null backing link Max Reitz
2018-02-24 21:09   ` Eric Blake
2018-02-24 15:40 ` [Qemu-devel] [PATCH v3 7/7] block: Deprecate "backing": "" Max Reitz
2018-02-24 18:02 ` [Qemu-devel] [PATCH v3 0/7] block: Handle null backing link no-reply
2018-02-26 11:50   ` Max Reitz
2018-02-24 19:51 ` no-reply
2018-02-24 20:19 ` no-reply
2018-02-24 20:30 ` no-reply
2018-02-25 23:38 ` no-reply
2018-02-26  6:11 ` no-reply
2018-03-09 20:11 ` Eric Blake
2018-03-10 22:34 ` Eric Blake
2018-03-12 12:22   ` Max Reitz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).