qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 3ede93: qcow2: Fix alloc_cluster_abort() for


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 3ede93: qcow2: Fix alloc_cluster_abort() for pre-existing ...
Date: Fri, 06 Mar 2020 11:30:19 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 3ede935fdbbd5f7b24b4724bbfb8938acb5956d8
      
https://github.com/qemu/qemu/commit/3ede935fdbbd5f7b24b4724bbfb8938acb5956d8
  Author: Max Reitz <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M block/qcow2-cluster.c

  Log Message:
  -----------
  qcow2: Fix alloc_cluster_abort() for pre-existing clusters

handle_alloc() reuses preallocated zero clusters.  If anything goes
wrong during the data write, we do not change their L2 entry, so we
must not let qcow2_alloc_cluster_abort() free them.

Fixes: 8b24cd141549b5b264baeddd4e72902cfb5de23b
Cc: address@hidden
Signed-off-by: Max Reitz <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 31ab00f3747c00fdbb9027cea644b40dd1405480
      
https://github.com/qemu/qemu/commit/31ab00f3747c00fdbb9027cea644b40dd1405480
  Author: Max Reitz <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M tests/qemu-iotests/026
    M tests/qemu-iotests/026.out
    M tests/qemu-iotests/026.out.nocache

  Log Message:
  -----------
  iotests/026: Test EIO on preallocated zero cluster

Test what happens when writing data to a preallocated zero cluster, but
the data write fails.

Signed-off-by: Max Reitz <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 81311255f217859413c94f2cd9cebf2684bbda94
      
https://github.com/qemu/qemu/commit/81311255f217859413c94f2cd9cebf2684bbda94
  Author: Max Reitz <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M tests/qemu-iotests/026
    M tests/qemu-iotests/026.out
    M tests/qemu-iotests/026.out.nocache

  Log Message:
  -----------
  iotests/026: Test EIO on allocation in a data-file

Test what happens when writing data to an external data file, where the
write requires an L2 entry to be allocated, but the data write fails.

Signed-off-by: Max Reitz <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: eeea1faa099f82328f5831cf252f8ce0a59a9287
      
https://github.com/qemu/qemu/commit/eeea1faa099f82328f5831cf252f8ce0a59a9287
  Author: Max Reitz <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Fix leak in bdrv_create_file_fallback()

@options is leaked by the first two return statements in this function.

Note that blk_new_open() takes the reference to @options even on
failure, so all we need to do to fix the leak is to move the QDict
allocation down to where we actually need it.

Reported-by: Coverity (CID 1419884)
Fixes: fd17146cd93d1704cd96d7c2757b325fc7aac6fd
       ("block: Generic file creation fallback")
Signed-off-by: Max Reitz <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 17e1e2be5f9e84e0298e28e70675655b43e225ea
      
https://github.com/qemu/qemu/commit/17e1e2be5f9e84e0298e28e70675655b43e225ea
  Author: Peter Krempa <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M block.c
    M include/block/block_int.h

  Log Message:
  -----------
  block: Introduce 'bdrv_reopen_commit_post' step

Add another step in the reopen process where driver can execute code
after permission changes are comitted.

Signed-off-by: Peter Krempa <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 65eb7c85a3e62529e2bad782e94d5a7b11dd5a92
      
https://github.com/qemu/qemu/commit/65eb7c85a3e62529e2bad782e94d5a7b11dd5a92
  Author: Peter Krempa <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M block/qcow2.c

  Log Message:
  -----------
  block/qcow2: Move bitmap reopen into bdrv_reopen_commit_post

The bitmap code requires writing the 'file' child when the qcow2 driver
is reopened in read-write mode.

If the 'file' child is being reopened due to a permissions change, the
modification is commited yet when qcow2_reopen_commit is called. This
means that any attempt to write the 'file' child will end with EBADFD
as the original fd was already closed.

Moving bitmap reopening to the new callback which is called after
permission modifications are commited fixes this as the file descriptor
will be replaced with the correct one.

The above problem manifests itself when reopening 'qcow2' format layer
which uses a 'file-posix' file child which was opened with the
'auto-read-only' property set.

Signed-off-by: Peter Krempa <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: f353415ffdadc9ed188e022855064401f9b2654e
      
https://github.com/qemu/qemu/commit/f353415ffdadc9ed188e022855064401f9b2654e
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M Makefile
    M configure
    A qemu-storage-daemon.c

  Log Message:
  -----------
  qemu-storage-daemon: Add barebone tool

This adds a new binary qemu-storage-daemon that doesn't yet do more than
some typical initialisation for tools and parsing the basic command
options --version, --help and --trace.

Even though this doesn't add any options yet that create things (like
--object or --blockdev), already document that we're planning to process
them in the order they are given on the command line rather than trying
(and failing, like vl.c) to resolve dependencies between options
automatically.

Signed-off-by: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 5964ed56d9a138c1172db1335c65bda42c4f6260
      
https://github.com/qemu/qemu/commit/5964ed56d9a138c1172db1335c65bda42c4f6260
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M include/sysemu/arch_init.h
    M stubs/Makefile.objs
    A stubs/arch_type.c

  Log Message:
  -----------
  stubs: Add arch_type

blockdev.c uses the arch_type constant, so before we can use the file in
tools (i.e. outside of the system emulator), we need to add a stub for
it. A new QEMU_ARCH_NONE is introduced for this case.

Signed-off-by: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 12c929bca2b0e01a9a89c0ef5000441ae7d7e675
      
https://github.com/qemu/qemu/commit/12c929bca2b0e01a9a89c0ef5000441ae7d7e675
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M block/Makefile.objs
    A block/qapi-sysemu.c
    M blockdev.c

  Log Message:
  -----------
  block: Move system emulator QMP commands to block/qapi-sysemu.c

These commands make only sense for system emulators and their
implementations call functions that don't exist in tools (e.g. to
resolve qdev IDs). Move them out so that blockdev.c can be linked to
qemu-storage-daemon.

Signed-off-by: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: b3cf1ec06a9e469c2f2236516b225acc0b8b2961
      
https://github.com/qemu/qemu/commit/b3cf1ec06a9e469c2f2236516b225acc0b8b2961
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M qapi/block-core.json
    M qapi/block.json

  Log Message:
  -----------
  block: Move common QMP commands to block-core QAPI module

block-core is for everything that isn't related to the system emulator.
Internal snapshots, the NBD server and quorum events make sense in the
tools, too, so move them to block-core.

Signed-off-by: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 5a16818b45cbe2a35d58f5314209b09b753994d8
      
https://github.com/qemu/qemu/commit/5a16818b45cbe2a35d58f5314209b09b753994d8
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M monitor/qmp-cmds.c
    M qapi/block-core.json
    M qapi/block.json

  Log Message:
  -----------
  block: Move sysemu QMP commands to QAPI block module

QMP commands that are related to the system emulator and don't make
sense in the context of tools such as qemu-storage-daemon should live in
qapi/block.json rather than qapi/block-core.json. Move them there.

The associated data types are actually also used in code shared with the
tools, so they stay in block-core.json.

Signed-off-by: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 14837c6493d42f5f85d910935654725217a5770b
      
https://github.com/qemu/qemu/commit/14837c6493d42f5f85d910935654725217a5770b
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M Makefile
    M Makefile.objs
    M block/Makefile.objs
    M qemu-storage-daemon.c

  Log Message:
  -----------
  qemu-storage-daemon: Add --blockdev option

This adds a --blockdev option to the storage daemon that works the same
as the -blockdev option of the system emulator.

In order to be able to link with blockdev.o, we also need to change
stream.o from common-obj to block-obj, which is where all other block
jobs already are.

In contrast to the system emulator, qemu-storage-daemon options will be
processed in the order they are given. The user needs to take care to
refer to other objects only after defining them.

Signed-off-by: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 5f07c4d60d091320186e7b0edaf9ed2cc16b2d1e
      
https://github.com/qemu/qemu/commit/5f07c4d60d091320186e7b0edaf9ed2cc16b2d1e
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M docs/system/deprecated.rst
    M hw/block/xen-block.c
    M include/qom/object_interfaces.h
    M monitor/misc.c
    M qapi/qom.json
    M qom/qom-qmp-cmds.c

  Log Message:
  -----------
  qapi: Flatten object-add

Mapping object-add to the command line as is doesn't result in nice
syntax because of the nesting introduced with 'props'. This becomes
nicer and more consistent with device_add and netdev_add when we accept
properties for the object on the top level instead.

'props' is still accepted after this patch, but marked as deprecated.

Signed-off-by: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: d6da78b5fdad8d4e7fbe6eebbb6ea369f84c0408
      
https://github.com/qemu/qemu/commit/d6da78b5fdad8d4e7fbe6eebbb6ea369f84c0408
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M Makefile.objs
    M qemu-storage-daemon.c
    M qom/Makefile.objs

  Log Message:
  -----------
  qemu-storage-daemon: Add --object option

Add a command line option to create user-creatable QOM objects.

Signed-off-by: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: eed8b691783264013142ed0273e08f5a7f913569
      
https://github.com/qemu/qemu/commit/eed8b691783264013142ed0273e08f5a7f913569
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M Makefile.objs
    M blockdev-nbd.c
    M include/block/nbd.h
    M qapi/block-core.json
    M qemu-storage-daemon.c

  Log Message:
  -----------
  qemu-storage-daemon: Add --nbd-server option

Add a --nbd-server option to qemu-storage-daemon to start the built-in
NBD server right away. It maps the arguments for nbd-server-start to the
command line, with the exception that it uses SocketAddress instead of
SocketAddressLegacy: New interfaces shouldn't use legacy types, and the
additional nesting would be nasty on the command line.

Example (only with required options):

    --nbd-server addr.type=inet,addr.host=localhost,addr.port=10809

Signed-off-by: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: c62d24e906e54b5d641f662f50a3e3fbdeae2377
      
https://github.com/qemu/qemu/commit/c62d24e906e54b5d641f662f50a3e3fbdeae2377
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M blockdev-nbd.c
    M monitor/hmp-cmds.c
    M qapi/block-core.json

  Log Message:
  -----------
  blockdev-nbd: Boxed argument type for nbd-server-add

Move the arguments of nbd-server-add to a new struct BlockExportNbd and
convert the command to 'boxed': true. This makes it easier to share code
with the storage daemon.

Signed-off-by: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 39411120b7bd58cdd1bdf0e14d3adb5a513dc6c7
      
https://github.com/qemu/qemu/commit/39411120b7bd58cdd1bdf0e14d3adb5a513dc6c7
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M qapi/block-core.json
    M qemu-storage-daemon.c

  Log Message:
  -----------
  qemu-storage-daemon: Add --export option

Add a --export option to qemu-storage-daemon to export a block node. For
now, only NBD exports are implemented. Apart from the 'type' option
(which is the implied key), it maps the arguments for nbd-server-add to
the command line. Example:

    --export nbd,device=disk,name=test-export,writable=on

Signed-off-by: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: aa70683ded5ac3c1468883f4b09d7d4077ae33ca
      
https://github.com/qemu/qemu/commit/aa70683ded5ac3c1468883f4b09d7d4077ae33ca
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M Makefile.objs
    M qemu-storage-daemon.c

  Log Message:
  -----------
  qemu-storage-daemon: Add main loop

Instead of exiting after processing all command line options, start a
main loop and keep processing events until exit is requested with a
signal (e.g. SIGINT).

Now qemu-storage-daemon can be used as an alternative for qemu-nbd that
provides a few features that were previously only available from QMP,
such as access to options only available with -blockdev and the socket
types 'vsock' and 'fd'.

Signed-off-by: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 5e6911cf11e726e6a951824bed305191e568287a
      
https://github.com/qemu/qemu/commit/5e6911cf11e726e6a951824bed305191e568287a
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M Makefile
    M qemu-storage-daemon.c

  Log Message:
  -----------
  qemu-storage-daemon: Add --chardev option

This adds a --chardev option to the storage daemon that works the same
as the -chardev option of the system emulator.

The syntax of the --chardev option is still considered unstable. We want
to QAPIfy it and will potentially make changes to its syntax while
converting it. However, we haven't decided yet on a design for the
QAPIfication, so QemuOpts will have to do for now.

Signed-off-by: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 6ede81d576ddc8e1f745494a51345328bd3f4d76
      
https://github.com/qemu/qemu/commit/6ede81d576ddc8e1f745494a51345328bd3f4d76
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M stubs/Makefile.objs
    A stubs/monitor-core.c
    M stubs/monitor.c

  Log Message:
  -----------
  stubs: Update monitor stubs for qemu-storage-daemon

Before we can add the monitor to qemu-storage-daemon, we need to add a
stubs for monitor_fdsets_cleanup().

We also need to make sure that stubs that are actually implemented in
the monitor core aren't linked to qemu-storage-daemon so that we don't
get linker errors because of duplicate symbols. This is achieved by
moving the stubs in question to a new file stubs/monitor-core.c.

Signed-off-by: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 9a9f909951516cfec8473f778fb24d6cc9366573
      
https://github.com/qemu/qemu/commit/9a9f909951516cfec8473f778fb24d6cc9366573
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M qapi/Makefile.objs
    A qapi/pragma.json
    M qapi/qapi-schema.json

  Log Message:
  -----------
  qapi: Create 'pragma' module

We want to share the whitelists between the system emulator schema and
the storage daemon schema, so move all the pragmas from the main schema
file into a separate file that can be included from both.

Signed-off-by: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: f2098725aa3ebdb4095bc1951c1c0680adbdecc7
      
https://github.com/qemu/qemu/commit/f2098725aa3ebdb4095bc1951c1c0680adbdecc7
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M include/monitor/monitor.h
    M monitor/monitor.c
    M qapi/control.json

  Log Message:
  -----------
  monitor: Create QAPIfied monitor_init()

This adds a new QAPI-based monitor_init() function. The existing
monitor_init_opts() is rewritten to simply put its QemuOpts parameter
into a visitor and pass the resulting QAPI object to monitor_init().

This will cause some change in those error messages for the monitor
options in the system emulator that are now generated by the visitor
rather than explicitly checked in monitor_init_opts().

Signed-off-by: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: f27a9bb3e9c3bd822243f6fc1d921f1334e37acf
      
https://github.com/qemu/qemu/commit/f27a9bb3e9c3bd822243f6fc1d921f1334e37acf
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M include/monitor/monitor.h
    M monitor/monitor.c
    M monitor/qmp.c
    M stubs/monitor-core.c
    M tests/test-util-sockets.c

  Log Message:
  -----------
  qmp: Fail gracefully if chardev is already in use

Trying to attach a QMP monitor to a chardev that is already in use
results in a crash because monitor_init_qmp() passes &error_abort to
qemu_chr_fe_init():

$ ./x86_64-softmmu/qemu-system-x86_64 --chardev stdio,id=foo --mon 
foo,mode=control --mon foo,mode=control
Unexpected error in qemu_chr_fe_init() at chardev/char-fe.c:220:
qemu-system-x86_64: --mon foo,mode=control: Device 'foo' is in use
Abgebrochen (Speicherabzug geschrieben)

Fix this by allowing monitor_init_qmp() to return an error and passing
any error in qemu_chr_fe_init() to its caller instead of aborting.

Signed-off-by: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 8e9119a807df510f0d2ce4cdda3078166d6e99a7
      
https://github.com/qemu/qemu/commit/8e9119a807df510f0d2ce4cdda3078166d6e99a7
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M chardev/char.c
    M gdbstub.c
    M include/monitor/monitor.h
    M monitor/hmp.c
    M monitor/monitor.c
    M stubs/monitor.c
    M tests/test-util-sockets.c

  Log Message:
  -----------
  hmp: Fail gracefully if chardev is already in use

Trying to attach a HMP monitor to a chardev that is already in use
results in a crash because monitor_init_hmp() passes &error_abort to
qemu_chr_fe_init():

$ ./x86_64-softmmu/qemu-system-x86_64 --chardev stdio,id=foo --mon foo --mon foo
QEMU 4.2.50 monitor - type 'help' for more information
(qemu) Unexpected error in qemu_chr_fe_init() at chardev/char-fe.c:220:
qemu-system-x86_64: --mon foo: Device 'foo' is in use
Abgebrochen (Speicherabzug geschrieben)

Fix this by allowing monitor_init_hmp() to return an error and passing
any error in qemu_chr_fe_init() to its caller instead of aborting.

Signed-off-by: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: a2f411c4671b0b6cfe5f3b91b65d9bc8456e75ab
      
https://github.com/qemu/qemu/commit/a2f411c4671b0b6cfe5f3b91b65d9bc8456e75ab
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M include/monitor/monitor.h
    M monitor/monitor.c
    M qapi/control.json

  Log Message:
  -----------
  monitor: Add allow_hmp parameter to monitor_init()

Add a new parameter allow_hmp to monitor_init() so that the storage
daemon can disable HMP.

Signed-off-by: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 2af282ec51a27116d0402cab237b8970800f870c
      
https://github.com/qemu/qemu/commit/2af282ec51a27116d0402cab237b8970800f870c
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M Makefile
    M Makefile.objs
    M monitor/Makefile.objs
    M qapi/Makefile.objs
    M qapi/transaction.json
    M qemu-storage-daemon.c
    M scripts/qapi/gen.py
    A storage-daemon/Makefile.objs
    A storage-daemon/qapi/Makefile.objs
    A storage-daemon/qapi/qapi-schema.json

  Log Message:
  -----------
  qemu-storage-daemon: Add --monitor option

This adds and parses the --monitor option, so that a QMP monitor can be
used in the storage daemon. The monitor offers commands defined in the
QAPI schema at storage-daemon/qapi/qapi-schema.json.

The --monitor options currently allows to create multiple monitors with
the same ID. This part of the interface is considered unstable. We will
reject such configurations as soon as we have a design for the monitor
subsystem to perform these checks. (In the system emulator, we depend on
QemuOpts rejecting duplicate IDs.)

Signed-off-by: Kevin Wolf <address@hidden>
Message-Id: <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 19ae9ae014715529f6f50597821c5712bae6ab02
      
https://github.com/qemu/qemu/commit/19ae9ae014715529f6f50597821c5712bae6ab02
  Author: Florian Florensa <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M block/rbd.c
    M qapi/block-core.json

  Log Message:
  -----------
  block/rbd: Add support for ceph namespaces

Starting from ceph Nautilus, RBD has support for namespaces, allowing
for finer grain ACLs on images inside a pool, and tenant isolation.

In the rbd cli tool documentation, the new image-spec and snap-spec are :
 - [pool-name/[namespace-name/]]image-name
 - [pool-name/[namespace-name/]]image-name@snap-name

When using an non namespace's enabled qemu, it complains about not
finding the image called namespace-name/image-name, thus we only need to
parse the image once again to find if there is a '/' in its name, and if
there is, use what is before it as the name of the namespace to later
pass it to rados_ioctx_set_namespace.
rados_ioctx_set_namespace if called with en empty string or a null
pointer as the namespace parameters pretty much does nothing, as it then
defaults to the default namespace.

The namespace is extracted inside qemu_rbd_parse_filename, stored in the
qdict, and used in qemu_rbd_connect to make it work with both qemu-img,
and qemu itself.

Signed-off-by: Florian Florensa <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Jason Dillaman <address@hidden>
Reviewed-by: Stefano Garzarella <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 97518e11c3d902a32386d33797044f6b79bccc6f
      
https://github.com/qemu/qemu/commit/97518e11c3d902a32386d33797044f6b79bccc6f
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M tests/qemu-iotests/245
    M tests/qemu-iotests/245.out

  Log Message:
  -----------
  iotests: Refactor blockdev-reopen test for iothreads

We'll want to test more than one successful case in the future, so
prepare the test for that by a refactoring that runs each scenario in a
separate VM.

test_iothreads_switch_{backing,overlay} currently produce errors, but
these are cases that should actually work, by switching either the
backing file node or the overlay node to the AioContext of the other
node.

Signed-off-by: Kevin Wolf <address@hidden>
Tested-by: Peter Krempa <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 1de6b45fb5c1489b450df7d1a4c692bba9678ce6
      
https://github.com/qemu/qemu/commit/1de6b45fb5c1489b450df7d1a4c692bba9678ce6
  Author: Kevin Wolf <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M block.c
    M tests/qemu-iotests/245

  Log Message:
  -----------
  block: bdrv_reopen() with backing file in different AioContext

This patch allows bdrv_reopen() (and therefore the x-blockdev-reopen QMP
command) to attach a node as the new backing file even if the node is in
a different AioContext than the parent if one of both nodes can be moved
to the AioContext of the other node.

Signed-off-by: Kevin Wolf <address@hidden>
Tested-by: Peter Krempa <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Alberto Garcia <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 67f17e23baca5dd545fe98b01169cc351a70fe35
      
https://github.com/qemu/qemu/commit/67f17e23baca5dd545fe98b01169cc351a70fe35
  Author: Peter Maydell <address@hidden>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M Makefile
    M Makefile.objs
    M block.c
    M block/Makefile.objs
    A block/qapi-sysemu.c
    M block/qcow2-cluster.c
    M block/qcow2.c
    M block/rbd.c
    M blockdev-nbd.c
    M blockdev.c
    M chardev/char.c
    M configure
    M docs/system/deprecated.rst
    M gdbstub.c
    M hw/block/xen-block.c
    M include/block/block_int.h
    M include/block/nbd.h
    M include/monitor/monitor.h
    M include/qom/object_interfaces.h
    M include/sysemu/arch_init.h
    M monitor/Makefile.objs
    M monitor/hmp-cmds.c
    M monitor/hmp.c
    M monitor/misc.c
    M monitor/monitor.c
    M monitor/qmp-cmds.c
    M monitor/qmp.c
    M qapi/Makefile.objs
    M qapi/block-core.json
    M qapi/block.json
    M qapi/control.json
    A qapi/pragma.json
    M qapi/qapi-schema.json
    M qapi/qom.json
    M qapi/transaction.json
    A qemu-storage-daemon.c
    M qom/Makefile.objs
    M qom/qom-qmp-cmds.c
    M scripts/qapi/gen.py
    A storage-daemon/Makefile.objs
    A storage-daemon/qapi/Makefile.objs
    A storage-daemon/qapi/qapi-schema.json
    M stubs/Makefile.objs
    A stubs/arch_type.c
    A stubs/monitor-core.c
    M stubs/monitor.c
    M tests/qemu-iotests/026
    M tests/qemu-iotests/026.out
    M tests/qemu-iotests/026.out.nocache
    M tests/qemu-iotests/245
    M tests/qemu-iotests/245.out
    M tests/test-util-sockets.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging

Block layer patches:

- Add qemu-storage-daemon (still experimental)
- rbd: Add support for ceph namespaces
- Fix bdrv_reopen() with backing file in different AioContext
- qcow2: Fix read-write reopen with persistent dirty bitmaps
- qcow2: Fix alloc_cluster_abort() for pre-existing clusters

# gpg: Signature made Fri 06 Mar 2020 17:12:31 GMT
# gpg:                using RSA key 7F09B272C88F2FD6
# gpg: Good signature from "Kevin Wolf <address@hidden>" [full]
# Primary key fingerprint: DC3D EB15 9A9A F95D 3D74  56FE 7F09 B272 C88F 2FD6

* remotes/kevin/tags/for-upstream: (29 commits)
  block: bdrv_reopen() with backing file in different AioContext
  iotests: Refactor blockdev-reopen test for iothreads
  block/rbd: Add support for ceph namespaces
  qemu-storage-daemon: Add --monitor option
  monitor: Add allow_hmp parameter to monitor_init()
  hmp: Fail gracefully if chardev is already in use
  qmp: Fail gracefully if chardev is already in use
  monitor: Create QAPIfied monitor_init()
  qapi: Create 'pragma' module
  stubs: Update monitor stubs for qemu-storage-daemon
  qemu-storage-daemon: Add --chardev option
  qemu-storage-daemon: Add main loop
  qemu-storage-daemon: Add --export option
  blockdev-nbd: Boxed argument type for nbd-server-add
  qemu-storage-daemon: Add --nbd-server option
  qemu-storage-daemon: Add --object option
  qapi: Flatten object-add
  qemu-storage-daemon: Add --blockdev option
  block: Move sysemu QMP commands to QAPI block module
  block: Move common QMP commands to block-core QAPI module
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/c2058285790f...67f17e23baca



reply via email to

[Prev in Thread] Current Thread [Next in Thread]