qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] e014db: gluster: Handle changed glfs_ftruncat


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] e014db: gluster: Handle changed glfs_ftruncate signature
Date: Wed, 13 Mar 2019 10:24:10 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: e014dbe74e0484188164c61ff6843f8a04a8cb9d
      
https://github.com/qemu/qemu/commit/e014dbe74e0484188164c61ff6843f8a04a8cb9d
  Author: Prasanna Kumar Kalever <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
    M block/gluster.c
    M configure

  Log Message:
  -----------
  gluster: Handle changed glfs_ftruncate signature

New versions of Glusters libgfapi.so have an updated glfs_ftruncate()
function that returns additional 'struct stat' structures to enable
advanced caching of attributes. This is useful for file servers, not so
much for QEMU. Nevertheless, the API has changed and needs to be
adopted.

Signed-off-by: Prasanna Kumar Kalever <address@hidden>
Signed-off-by: Niels de Vos <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 0e3b891fefacc0e49f3c8ffa3a753b69eb7214d2
      
https://github.com/qemu/qemu/commit/0e3b891fefacc0e49f3c8ffa3a753b69eb7214d2
  Author: Niels de Vos <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
    M block/gluster.c
    M configure

  Log Message:
  -----------
  gluster: the glfs_io_cbk callback function pointer adds pre/post stat args

The glfs_*_async() functions do a callback once finished. This callback
has changed its arguments, pre- and post-stat structures have been
added. This makes it possible to improve caching, which is useful for
Samba and NFS-Ganesha, but not so much for QEMU. Gluster 6 is the first
release that includes these new arguments.

With an additional detection in ./configure, the new arguments can
conditionally get included in the glfs_io_cbk handler.

Signed-off-by: Niels de Vos <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: af0a2265040ca571c31c88f62d46c24b0fcd6623
      
https://github.com/qemu/qemu/commit/af0a2265040ca571c31c88f62d46c24b0fcd6623
  Author: Vladimir Sementsov-Ogievskiy <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

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

  Log Message:
  -----------
  qapi: move to QOM path for x-block-latency-histogram-set

Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: cb8aac378368f3904e2fe4a1f89c16958d2b4218
      
https://github.com/qemu/qemu/commit/cb8aac378368f3904e2fe4a1f89c16958d2b4218
  Author: Vladimir Sementsov-Ogievskiy <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

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

  Log Message:
  -----------
  qapi: drop x- from x-block-latency-histogram-set

Drop x- and x_ prefixes for latency histograms and update version to
4.0

Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 70304118bb920f2aa961530b64efcce761e4cb5b
      
https://github.com/qemu/qemu/commit/70304118bb920f2aa961530b64efcce761e4cb5b
  Author: Kevin Wolf <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
    M tests/virtio-blk-test.c

  Log Message:
  -----------
  tests/virtio-blk-test: Disable auto-read-only

tests/virtio-blk-test uses a temporary image file that it deletes while
QEMU is still running, so it can't be reopened when writers are
attached or detached. Disable auto-read-only to keep it always writable.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Eric Blake <address@hidden>


  Commit: 12efe428c9e01f3e195e3ae801cfd9c814ee777d
      
https://github.com/qemu/qemu/commit/12efe428c9e01f3e195e3ae801cfd9c814ee777d
  Author: Kevin Wolf <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

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

  Log Message:
  -----------
  qemu-iotests: commit to backing file with auto-read-only

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Eric Blake <address@hidden>


  Commit: a4615ab31cade201641cbb17a81dcac1b3bea624
      
https://github.com/qemu/qemu/commit/a4615ab31cade201641cbb17a81dcac1b3bea624
  Author: Kevin Wolf <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Avoid useless local_err

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Alberto Garcia <address@hidden>
Reviewed-by: Eric Blake <address@hidden>


  Commit: 69b736e76567ecbc9b9e55570bc0afc840614a98
      
https://github.com/qemu/qemu/commit/69b736e76567ecbc9b9e55570bc0afc840614a98
  Author: Kevin Wolf <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Make permission changes in reopen less wrong

The way that reopen interacts with permission changes has one big
problem: Both operations are recursive, and the permissions are changes
for each node in the reopen queue.

For a simple graph that consists just of parent and child,
.bdrv_check_perm will be called twice for the child, once recursively
when adjusting the permissions of parent, and once again when the child
itself is reopened.

Even worse, the first .bdrv_check_perm call happens before
.bdrv_reopen_prepare was called for the child and the second one is
called afterwards.

Making sure that .bdrv_check_perm (and the other permission callbacks)
are called only once is hard. We can cope with multiple calls right now,
but as soon as file-posix gets a dynamic auto-read-only that may need to
open a new file descriptor, we get the additional requirement that all
of them are after the .bdrv_reopen_prepare call.

So reorder things in bdrv_reopen_multiple() to first call
.bdrv_reopen_prepare for all involved nodes and only then adjust
permissions.

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 30855137783c0c762007044821a6f11e14e6af33
      
https://github.com/qemu/qemu/commit/30855137783c0c762007044821a6f11e14e6af33
  Author: Kevin Wolf <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
    M block.c
    M tests/qemu-iotests/051
    M tests/qemu-iotests/051.out
    M tests/qemu-iotests/051.pc.out

  Log Message:
  -----------
  file-posix: Fix bdrv_open_flags() for snapshot=on

Using a different read-only setting for bs->open_flags than for the
flags to the driver's open function is just inconsistent and a bad idea.
After this patch, the temporary snapshot keeps being opened read-only if
read-only=on,snapshot=on is passed.

If we wanted to change this behaviour to make only the orginal image
file read-only, but the temporary overlay read-write (as the comment in
the removed code suggests), that change would have to be made in
bdrv_temp_snapshot_options() (where the comment suggests otherwise).

Addressing this inconsistency before introducing dynamic auto-read-only
is important because otherwise we would immediately try to reopen the
temporary overlay even though the file is already unlinked.

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 5cec28702587d8dc9792f8274bfc6bb91f07d672
      
https://github.com/qemu/qemu/commit/5cec28702587d8dc9792f8274bfc6bb91f07d672
  Author: Kevin Wolf <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
    M block/file-posix.c

  Log Message:
  -----------
  file-posix: Factor out raw_reconfigure_getfd()

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: e0c9cf3a484beb746996c0cd63e5585fecb3fd25
      
https://github.com/qemu/qemu/commit/e0c9cf3a484beb746996c0cd63e5585fecb3fd25
  Author: Kevin Wolf <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
    M block/file-posix.c

  Log Message:
  -----------
  file-posix: Store BDRVRawState.reopen_state during reopen

We'll want to access the file descriptor in the reopen_state while
processing permission changes in the context of the repoen.

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: a6aeca0ca530f104b5a5dd6704fca22b2c5edefa
      
https://github.com/qemu/qemu/commit/a6aeca0ca530f104b5a5dd6704fca22b2c5edefa
  Author: Kevin Wolf <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
    M block/file-posix.c

  Log Message:
  -----------
  file-posix: Lock new fd in raw_reopen_prepare()

There is no reason why we can take locks on the new file descriptor only
in raw_reopen_commit() where error handling isn't possible any more.
Instead, we can already do this in raw_reopen_prepare().

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 6ceabe6f77e4ae5ac2fa3d2ac1be11dc95021941
      
https://github.com/qemu/qemu/commit/6ceabe6f77e4ae5ac2fa3d2ac1be11dc95021941
  Author: Kevin Wolf <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
    M block/file-posix.c

  Log Message:
  -----------
  file-posix: Prepare permission code for fd switching

In order to be able to dynamically reopen the file read-only or
read-write, depending on the users that are attached, we need to be able
to switch to a different file descriptor during the permission change.

This interacts with reopen, which also creates a new file descriptor and
performs permission changes internally. In this case, the permission
change code must reuse the reopen file descriptor instead of creating a
third one.

In turn, reopen can drop its code to copy file locks to the new file
descriptor because that is now done when applying the new permissions.

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 23dece19da41724349809873923e20a48b619cb7
      
https://github.com/qemu/qemu/commit/23dece19da41724349809873923e20a48b619cb7
  Author: Kevin Wolf <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
    M block/file-posix.c
    M tests/qemu-iotests/232.out

  Log Message:
  -----------
  file-posix: Make auto-read-only dynamic

Until now, with auto-read-only=on we tried to open the file read-write
first and if that failed, read-only was tried. This is actually not good
enough for libvirt, which gives QEMU SELinux permissions for read-write
only as soon as it actually intends to write to the image. So we need to
be able to switch between read-only and read-write at runtime.

This patch makes auto-read-only dynamic, i.e. the file is opened
read-only as long as no user of the node has requested write
permissions, but it is automatically reopened read-write as soon as the
first writer is attached. Conversely, if the last writer goes away, the
file is reopened read-only again.

bs->read_only is no longer set for auto-read-only=on files even if the
file descriptor is opened read-only because it will be transparently
upgraded as soon as a writer is attached. This changes the output of
qemu-iotests 232.

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 9d6459d21a6e630264ead21558d940366d2f2450
      
https://github.com/qemu/qemu/commit/9d6459d21a6e630264ead21558d940366d2f2450
  Author: Keith Busch <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
    M hw/block/nvme.c

  Log Message:
  -----------
  nvme: fix write zeroes offset and count

The implementation used blocks units rather than the expected bytes.

Fixes: c03e7ef12a9 ("nvme: Implement Write Zeroes")
Reported-by: Ming Lei <address@hidden>
Signed-off-by: Keith Busch <address@hidden>
Reviewed-by: Christoph Hellwig <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 2cad1ebe701eccfe3b5a6b1eb277c4f3c5055665
      
https://github.com/qemu/qemu/commit/2cad1ebe701eccfe3b5a6b1eb277c4f3c5055665
  Author: Alberto Garcia <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

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

  Log Message:
  -----------
  block: Allow freezing BdrvChild links

Our permission system is useful to define what operations are allowed
on a certain block node and includes things like BLK_PERM_WRITE or
BLK_PERM_RESIZE among others.

One of the permissions is BLK_PERM_GRAPH_MOD which allows "changing
the node that this BdrvChild points to". The exact meaning of this has
never been very clear, but it can be understood as "change any of the
links connected to the node". This can be used to prevent changing a
backing link, but it's too coarse.

This patch adds a new 'frozen' attribute to BdrvChild, which forbids
detaching the link from the node it points to, and new API to freeze
and unfreeze a backing chain.

After this change a few functions can fail, so they need additional
checks.

Signed-off-by: Alberto Garcia <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: df827336abd072cf71aa6990a12ce13187b22861
      
https://github.com/qemu/qemu/commit/df827336abd072cf71aa6990a12ce13187b22861
  Author: Alberto Garcia <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
    M block/commit.c

  Log Message:
  -----------
  block: Freeze the backing chain for the duration of the commit job

Signed-off-by: Alberto Garcia <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: ef53dc09ed6aacca12aeb204258779273ba513ca
      
https://github.com/qemu/qemu/commit/ef53dc09ed6aacca12aeb204258779273ba513ca
  Author: Alberto Garcia <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
    M block/mirror.c

  Log Message:
  -----------
  block: Freeze the backing chain for the duration of the mirror job

Signed-off-by: Alberto Garcia <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 6585493369819a48d34a86d57ec6b97cb5cd9bc0
      
https://github.com/qemu/qemu/commit/6585493369819a48d34a86d57ec6b97cb5cd9bc0
  Author: Alberto Garcia <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
    M block/stream.c

  Log Message:
  -----------
  block: Freeze the backing chain for the duration of the stream job

Signed-off-by: Alberto Garcia <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 077e8e2018bce66aa1d1a87fa42beb24992c490f
      
https://github.com/qemu/qemu/commit/077e8e2018bce66aa1d1a87fa42beb24992c490f
  Author: Alberto Garcia <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
    M block.c
    M block/replication.c
    M include/block/block.h
    M qemu-io-cmds.c

  Log Message:
  -----------
  block: Add 'keep_old_opts' parameter to bdrv_reopen_queue()

The bdrv_reopen_queue() function is used to create a queue with
the BDSs that are going to be reopened and their new options. Once
the queue is ready bdrv_reopen_multiple() is called to perform the
operation.

The original options from each one of the BDSs are kept, with the new
options passed to bdrv_reopen_queue() applied on top of them.

For "x-blockdev-reopen" we want a function that behaves much like
"blockdev-add". We want to ignore the previous set of options so that
only the ones actually specified by the user are applied, with the
rest having their default values.

One of the things that we need is a way to tell bdrv_reopen_queue()
whether we want to keep the old set of options or not, and that's what
this patch does. All current callers are setting this new parameter to
true and x-blockdev-reopen will set it to false.

Signed-off-by: Alberto Garcia <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 8546632e610f9b906ff9d34ecba167915fc8157c
      
https://github.com/qemu/qemu/commit/8546632e610f9b906ff9d34ecba167915fc8157c
  Author: Alberto Garcia <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

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

  Log Message:
  -----------
  block: Handle child references in bdrv_reopen_queue()

Children in QMP are specified with BlockdevRef / BlockdevRefOrNull,
which can contain a set of child options, a child reference, or
NULL. In optional attributes like "backing" it can also be missing.

Only the first case (set of child options) is being handled properly
by bdrv_reopen_queue(). This patch deals with all the others.

Here's how these cases should be handled when bdrv_reopen_queue() is
deciding what to do with each child of a BlockDriverState:

   1) Set of child options: if the child was implicitly created (i.e
      inherits_from points to the parent) then the options are removed
      from the parent's options QDict and are passed to the child with
      a recursive bdrv_reopen_queue() call. This case was already
      working fine.

   2) Child reference: there's two possibilites here.

      2a) Reference to the current child: if the child was implicitly
          created then it is put in the reopen queue, keeping its
          current set of options (since this was a child reference
          there was no way to specify a different set of options).
          If the child is not implicit then it keeps its current set
          of options but it is not reopened (and therefore does not
          inherit any new option from the parent).

      2b) Reference to a different BDS: the current child is not put
          in the reopen queue at all. Passing a reference to a
          different BDS can be used to replace a child, although at
          the moment no driver implements this, so it results in an
          error. In any case, the current child is not going to be
          reopened (and might in fact disappear if it's replaced)

   3) NULL: This is similar to (2b). Although no driver allows this
      yet it can be used to detach the current child so it should not
      be put in the reopen queue.

   4) Missing option: at the moment "backing" is the only case where
      this can happen. With "blockdev-add", leaving "backing" out
      means that the default backing file is opened. We don't want to
      open a new image during reopen, so we require that "backing" is
      always present. We'll relax this requirement a bit in the next
      patch. If keep_old_opts is true and "backing" is missing then
      this behaves like 2a (the current child is reopened).

Signed-off-by: Alberto Garcia <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: bacd9b87c48850f93578102011181fa504a7a492
      
https://github.com/qemu/qemu/commit/bacd9b87c48850f93578102011181fa504a7a492
  Author: Alberto Garcia <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Allow omitting the 'backing' option in certain cases

Of all options of type BlockdevRef used to specify children in
BlockdevOptions, 'backing' is the only one that is optional.

For "x-blockdev-reopen" we want that if an option is omitted then it
must be reset to its default value. The default value of 'backing'
means that QEMU opens the backing file specified in the image
metadata, but this is not something that we want to support for the
reopen operation.

Because of this the 'backing' option has to be specified during
reopen, pointing to the existing backing file if we want to keep it,
or pointing to a different one (or NULL) if we want to replace it (to
be implemented in a subsequent patch).

In order to simplify things a bit and not to require that the user
passes the 'backing' option to every single block device even when
it's clearly not necessary, this patch allows omitting this option if
the block device being reopened doesn't have a backing file attached
_and_ no default backing file is specified in the image metadata.

Signed-off-by: Alberto Garcia <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: cb828c31de125d8c88ba1c3510b11343cbd211b3
      
https://github.com/qemu/qemu/commit/cb828c31de125d8c88ba1c3510b11343cbd211b3
  Author: Alberto Garcia <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

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

  Log Message:
  -----------
  block: Allow changing the backing file on reopen

This patch allows the user to change the backing file of an image that
is being reopened. Here's what it does:

 - In bdrv_reopen_prepare(): check that the value of 'backing' points
   to an existing node or is null. If it points to an existing node it
   also needs to make sure that replacing the backing file will not
   create a cycle in the node graph (i.e. you cannot reach the parent
   from the new backing file).

 - In bdrv_reopen_commit(): perform the actual node replacement by
   calling bdrv_set_backing_hd().

There may be temporary implicit nodes between a BDS and its backing
file (e.g. a commit filter node). In these cases bdrv_reopen_prepare()
looks for the real (non-implicit) backing file and requires that the
'backing' option points to it. Replacing or detaching a backing file
is forbidden if there are implicit nodes in the middle.

Although x-blockdev-reopen is meant to be used like blockdev-add,
there's an important thing that must be taken into account: the only
way to set a new backing file is by using a reference to an existing
node (previously added with e.g. blockdev-add).  If 'backing' contains
a dictionary with a new set of options ({"driver": "qcow2", "file": {
... }}) then it is interpreted that the _existing_ backing file must
be reopened with those options.

Signed-off-by: Alberto Garcia <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 8a2ce0bc1eb447c19c52422c03e690a420ea3ec7
      
https://github.com/qemu/qemu/commit/8a2ce0bc1eb447c19c52422c03e690a420ea3ec7
  Author: Alberto Garcia <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
    M block/file-posix.c
    M block/qcow2.c
    M block/raw-format.c
    M include/block/block_int.h

  Log Message:
  -----------
  block: Add a 'mutable_opts' field to BlockDriver

If we reopen a BlockDriverState and there is an option that is present
in bs->options but missing from the new set of options then we have to
return an error unless the driver is able to reset it to its default
value.

This patch adds a new 'mutable_opts' field to BlockDriver. This is
a list of runtime options that can be modified during reopen. If an
option in this list is unspecified on reopen then it must be reset (or
return an error).

Signed-off-by: Alberto Garcia <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: faf116b43897e9b4e7e87352610eb687a35c0e04
      
https://github.com/qemu/qemu/commit/faf116b43897e9b4e7e87352610eb687a35c0e04
  Author: Alberto Garcia <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: Add bdrv_reset_options_allowed()

bdrv_reopen_prepare() receives a BDRVReopenState with (among other
things) a new set of options to be applied to that BlockDriverState.

If an option is missing then it means that we want to reset it to its
default value rather than keep the previous one. This way the state
of the block device after being reopened is comparable to that of a
device added with "blockdev-add" using the same set of options.

Not all options from all drivers can be changed this way, however.
If the user attempts to reset an immutable option to its default value
using this method then we must forbid it.

This new function takes a BlockDriverState and a new set of options
and checks if there's any option that was previously set but is
missing from the new set of options.

If the option is present in both sets we don't need to check that they
have the same value. The loop at the end of bdrv_reopen_prepare()
already takes care of that.

Signed-off-by: Alberto Garcia <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 5019aece2a1827f1c5fafdd8ea76a57c3a78dd89
      
https://github.com/qemu/qemu/commit/5019aece2a1827f1c5fafdd8ea76a57c3a78dd89
  Author: Alberto Garcia <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
    M block.c
    M block/replication.c
    M include/block/block.h
    M qemu-io-cmds.c

  Log Message:
  -----------
  block: Remove the AioContext parameter from bdrv_reopen_multiple()

This parameter has been unused since 1a63a907507fbbcfaee3f622907ec244b

Signed-off-by: Alberto Garcia <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 1479c730c7c9405f854d927e90f0c2e7bd8a1fa5
      
https://github.com/qemu/qemu/commit/1479c730c7c9405f854d927e90f0c2e7bd8a1fa5
  Author: Alberto Garcia <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

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

  Log Message:
  -----------
  block: Add an 'x-blockdev-reopen' QMP command

This command allows reopening an arbitrary BlockDriverState with a
new set of options. Some options (e.g node-name) cannot be changed
and some block drivers don't allow reopening, but otherwise this
command is modelled after 'blockdev-add' and the state of the reopened
BlockDriverState should generally be the same as if it had just been
added by 'blockdev-add' with the same set of options.

One notable exception is the 'backing' option: 'x-blockdev-reopen'
requires that it is always present unless the BlockDriverState in
question doesn't have a current or default backing file.

This command allows reconfiguring the graph by using the appropriate
options to change the children of a node. At the moment it's possible
to change a backing file by setting the 'backing' option to the name
of the new node, but it should also be possible to add a similar
functionality to other block drivers (e.g. Quorum, blkverify).

Although the API is unlikely to change, this command is marked
experimental for the time being so there's room to see if the
semantics need changes.

Signed-off-by: Alberto Garcia <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: bf3e50f6239090e63a8ffaaec971671e66d88e07
      
https://github.com/qemu/qemu/commit/bf3e50f6239090e63a8ffaaec971671e66d88e07
  Author: Alberto Garcia <address@hidden>
  Date:   2019-03-12 (Tue, 12 Mar 2019)

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

  Log Message:
  -----------
  qemu-iotests: Test the x-blockdev-reopen QMP command

This patch adds several tests for the x-blockdev-reopen QMP command.

Signed-off-by: Alberto Garcia <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 36fe7709664579c934f014f21e5610d69e5b298f
      
https://github.com/qemu/qemu/commit/36fe7709664579c934f014f21e5610d69e5b298f
  Author: Peter Maydell <address@hidden>
  Date:   2019-03-13 (Wed, 13 Mar 2019)

  Changed paths:
    M block.c
    M block/commit.c
    M block/file-posix.c
    M block/gluster.c
    M block/mirror.c
    M block/qapi.c
    M block/qcow2.c
    M block/raw-format.c
    M block/replication.c
    M block/stream.c
    M blockdev.c
    M configure
    M hw/block/nvme.c
    M include/block/block.h
    M include/block/block_int.h
    M qapi/block-core.json
    M qemu-io-cmds.c
    M tests/qemu-iotests/051
    M tests/qemu-iotests/051.out
    M tests/qemu-iotests/051.pc.out
    M tests/qemu-iotests/232
    M tests/qemu-iotests/232.out
    A tests/qemu-iotests/245
    A tests/qemu-iotests/245.out
    M tests/qemu-iotests/group
    M tests/virtio-blk-test.c

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

Block layer patches:

- file-posix: Make auto-read-only dynamic
- Add x-blockdev-reopen QMP command
- Finalize block-latency-histogram QMP command
- gluster: Build fixes for newer lib version

# gpg: Signature made Tue 12 Mar 2019 19:30: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: (28 commits)
  qemu-iotests: Test the x-blockdev-reopen QMP command
  block: Add an 'x-blockdev-reopen' QMP command
  block: Remove the AioContext parameter from bdrv_reopen_multiple()
  block: Add bdrv_reset_options_allowed()
  block: Add a 'mutable_opts' field to BlockDriver
  block: Allow changing the backing file on reopen
  block: Allow omitting the 'backing' option in certain cases
  block: Handle child references in bdrv_reopen_queue()
  block: Add 'keep_old_opts' parameter to bdrv_reopen_queue()
  block: Freeze the backing chain for the duration of the stream job
  block: Freeze the backing chain for the duration of the mirror job
  block: Freeze the backing chain for the duration of the commit job
  block: Allow freezing BdrvChild links
  nvme: fix write zeroes offset and count
  file-posix: Make auto-read-only dynamic
  file-posix: Prepare permission code for fd switching
  file-posix: Lock new fd in raw_reopen_prepare()
  file-posix: Store BDRVRawState.reopen_state during reopen
  file-posix: Factor out raw_reconfigure_getfd()
  file-posix: Fix bdrv_open_flags() for snapshot=on
  ...

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


Compare: https://github.com/qemu/qemu/compare/f39901d59f38...36fe77096645



reply via email to

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