qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 2d369d: Prevent compiler warning on block.c


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 2d369d: Prevent compiler warning on block.c
Date: Fri, 02 Jul 2021 06:53:00 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 2d369d6e6e890a0204183e853604f8077329c4bc
      
https://github.com/qemu/qemu/commit/2d369d6e6e890a0204183e853604f8077329c4bc
  Author: Miroslav Rezanina <mrezanin@redhat.com>
  Date:   2021-06-29 (Tue, 29 Jun 2021)

  Changed paths:
    M block.c

  Log Message:
  -----------
  Prevent compiler warning on block.c

Commit 3108a15cf (block: introduce bdrv_drop_filter()) introduced
uninitialized variable to_cow_parent in bdrv_replace_node_common
function that is used only when detach_subchain is true. It is used in
two places. First if block properly initialize the variable and second
block use it.

However, compiler may treat these two blocks as two independent cases so
it thinks first block can fail test and second one pass (although both
use same condition). This cause warning that variable can be
uninitialized in second block.

The warning was observed with GCC 8.4.1 and 11.0.1.

To prevent this warning, initialize the variable with NULL.

Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
Message-Id: <1162368493.17178530.1620201543649.JavaMail.zimbra@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 97efa8698e554769fc23e8120fe9c56ab45cddc5
      
https://github.com/qemu/qemu/commit/97efa8698e554769fc23e8120fe9c56ab45cddc5
  Author: Eric Blake <eblake@redhat.com>
  Date:   2021-06-29 (Tue, 29 Jun 2021)

  Changed paths:
    M block/io.c

  Log Message:
  -----------
  block: Move read-only check during truncation earlier

No need to start a tracked request that will always fail.  The choice
to check read-only after bdrv_inc_in_flight() predates 1bc5f09f2e
(block: Use tracked request for truncate), but waiting for serializing
requests can make the effect more noticeable.

Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <20210609163034.997943-1-eblake@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: d5b23994586934f18853684307bc01965bcdad4b
      
https://github.com/qemu/qemu/commit/d5b23994586934f18853684307bc01965bcdad4b
  Author: Max Reitz <mreitz@redhat.com>
  Date:   2021-06-29 (Tue, 29 Jun 2021)

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

  Log Message:
  -----------
  block: BDRV_O_NO_IO for backing file on creation

When creating an image file with a backing file, we generally try to
open the backing file (unless -u was specified), mostly to verify that
it is there, but also to get the file size if none was specified for the
new image.

For neither of these things do we need data I/O, and so we can pass
BDRV_O_NO_IO when opening the backing file.  This allows us to open even
encrypted backing images without requiring the user to provide a secret.

This makes the -u switch in iotests 189 and 198 unnecessary (and the
$size parameter), so drop it, because this way we get regression tests
for this patch here.

Fixes: https://gitlab.com/qemu-project/qemu/-/issues/441
Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210622140030.212487-1-mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 4bf021dbd5d4da22058d425dceae93ce11ff3700
      
https://github.com/qemu/qemu/commit/4bf021dbd5d4da22058d425dceae93ce11ff3700
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-06-29 (Tue, 29 Jun 2021)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: rename bdrv_replace_child to bdrv_replace_child_tran

We have bdrv_replace_child() wrapper on bdrv_replace_child_noperm().
But bdrv_replace_child() doesn't update permissions. It's rather
strange, as normally it's expected that foo() should call foo_noperm()
and update permissions.

Let's rename and add comment.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210610112618.127378-2-vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 7ec390d587c32fa37c80099bd668ededd02309e0
      
https://github.com/qemu/qemu/commit/7ec390d587c32fa37c80099bd668ededd02309e0
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-06-29 (Tue, 29 Jun 2021)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: comment graph-modifying function not updating permissions

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210610112618.127378-3-vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 5b9950193bca788e4f01b98002f326cdd6a21e6c
      
https://github.com/qemu/qemu/commit/5b9950193bca788e4f01b98002f326cdd6a21e6c
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-06-29 (Tue, 29 Jun 2021)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: introduce bdrv_remove_file_or_backing_child()

To be used for reopen in future commit.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210610120537.196183-2-vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: e9238278c2272fd3c6a1d339303e3ee2a2e2fbd3
      
https://github.com/qemu/qemu/commit/e9238278c2272fd3c6a1d339303e3ee2a2e2fbd3
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-06-29 (Tue, 29 Jun 2021)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: introduce bdrv_set_file_or_backing_noperm()

To be used for reopen in future commit.

Notes:
 - It seems OK to update inherits_from if new bs is recursively inherits
 from parent bs. Let's just not check for backing_chain_contains, to
 support file child of non-filters.

 - Simply check child->frozen instead of
   bdrv_is_backing_chain_frozen(), as we really interested only in this
   one child.

 - Role determination of new child is a bit more complex: it remains
   the same for backing child, it's obvious for filter driver. But for
   non-filter file child let's for now restrict to only replacing
   existing child (and keeping its role).

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210610120537.196183-3-vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: fd26b8a089962fa7ac1cbd44e138fbef4b484271
      
https://github.com/qemu/qemu/commit/fd26b8a089962fa7ac1cbd44e138fbef4b484271
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-06-29 (Tue, 29 Jun 2021)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: bdrv_reopen_parse_backing(): don't check aio context

We don't need this check: bdrv_set_backing_noperm() will do it anyway
(actually in bdrv_attach_child_common()).

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210610120537.196183-4-vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: bfae052a57d20af91b2fd9fb92469be6283f4820
      
https://github.com/qemu/qemu/commit/bfae052a57d20af91b2fd9fb92469be6283f4820
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-06-29 (Tue, 29 Jun 2021)

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

  Log Message:
  -----------
  block: bdrv_reopen_parse_backing(): don't check frozen child

bdrv_set_backing_noperm() takes care of it (actual check is in
bdrv_set_file_or_backing_noperm()), so we don't need to check it here.

While being here, improve error message a bit.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210610120537.196183-5-vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: cbfdb98ce21532e6705fdbf324583f99602e183a
      
https://github.com/qemu/qemu/commit/cbfdb98ce21532e6705fdbf324583f99602e183a
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-06-29 (Tue, 29 Jun 2021)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: bdrv_reopen_parse_backing(): simplify handling implicit filters

The logic around finding overlay here is not obvious. Actually it does
two simple things:

1. If new bs is already in backing chain, split from parent bs by
   several implicit filters we are done, do nothing.

2. Otherwise, don't try to replace implicit filter.

Let's rewrite this in more obvious way.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210610120537.196183-6-vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 25f78d9e2de528473d52acfcf7acdfb64e3453d4
      
https://github.com/qemu/qemu/commit/25f78d9e2de528473d52acfcf7acdfb64e3453d4
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-06-29 (Tue, 29 Jun 2021)

  Changed paths:
    M block.c
    M tests/unit/test-bdrv-drain.c
    M tests/unit/test-bdrv-graph-mod.c

  Log Message:
  -----------
  block: move supports_backing check to bdrv_set_file_or_backing_noperm()

Move supports_backing check of bdrv_reopen_parse_backing to called
(through bdrv_set_backing_noperm()) bdrv_set_file_or_backing_noperm()
function. The check applies to general case, so it's appropriate for
bdrv_set_file_or_backing_noperm().

We have to declare backing support for two test drivers, otherwise new
check fails.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210610120537.196183-7-vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 3d0e8743f0fca85e2d9b98924dcedaa5ab79db4d
      
https://github.com/qemu/qemu/commit/3d0e8743f0fca85e2d9b98924dcedaa5ab79db4d
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-06-29 (Tue, 29 Jun 2021)

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

  Log Message:
  -----------
  block: BDRVReopenState: drop replace_backing_bs field

It's used only in bdrv_reopen_commit(). "backing" is covered by the
loop through all children except for case when we removed backing child
during reopen.

Make it more obvious and drop extra boolean field: qdict_del will not
fail if there is no such entry.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210610120537.196183-8-vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: ecd30d2d978493f2280798f4c48f674d6290efa4
      
https://github.com/qemu/qemu/commit/ecd30d2d978493f2280798f4c48f674d6290efa4
  Author: Alberto Garcia <berto@igalia.com>
  Date:   2021-06-29 (Tue, 29 Jun 2021)

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

  Log Message:
  -----------
  block: Allow changing bs->file on reopen

When the x-blockdev-reopen was added it allowed reconfiguring the
graph by replacing backing files, but changing the 'file' option was
forbidden. Because of this restriction some operations are not
possible, notably inserting and removing block filters.

This patch adds support for replacing the 'file' option. This is
similar to replacing the backing file and the user is likewise
responsible for the correctness of the resulting graph, otherwise this
can lead to data corruption.

Signed-off-by: Alberto Garcia <berto@igalia.com>
 [vsementsov: bdrv_reopen_parse_file_or_backing() is modified a lot]
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210610120537.196183-9-vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 4c5393f169ca8587cc766928293bbcbbbdff78a4
      
https://github.com/qemu/qemu/commit/4c5393f169ca8587cc766928293bbcbbbdff78a4
  Author: Alberto Garcia <berto@igalia.com>
  Date:   2021-06-29 (Tue, 29 Jun 2021)

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

  Log Message:
  -----------
  iotests: Test replacing files with x-blockdev-reopen

This patch adds new tests in which we use x-blockdev-reopen to change
bs->file

Signed-off-by: Alberto Garcia <berto@igalia.com>
Message-Id: <20210610120537.196183-10-vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 4d324c0bf65c615ffbe95b35497353996b97753b
      
https://github.com/qemu/qemu/commit/4d324c0bf65c615ffbe95b35497353996b97753b
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-06-29 (Tue, 29 Jun 2021)

  Changed paths:
    M include/qemu/osdep.h

  Log Message:
  -----------
  introduce QEMU_AUTO_VFREE

Introduce a convenient macro, that works for qemu_memalign() like
g_autofree works with g_malloc.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210628121133.193984-2-vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 7170170866f74f3ee9e3a143c959c97c2bc5897e
      
https://github.com/qemu/qemu/commit/7170170866f74f3ee9e3a143c959c97c2bc5897e
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-06-29 (Tue, 29 Jun 2021)

  Changed paths:
    M block/commit.c

  Log Message:
  -----------
  block/commit: use QEMU_AUTO_VFREE

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210628121133.193984-3-vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: bf783261f0aee6e81af3916bff7606d71ccdc153
      
https://github.com/qemu/qemu/commit/bf783261f0aee6e81af3916bff7606d71ccdc153
  Author: Daniel P. Berrangé <berrange@redhat.com>
  Date:   2021-06-30 (Wed, 30 Jun 2021)

  Changed paths:
    M block/ssh.c
    M qapi/block-core.json
    M tests/qemu-iotests/207
    M tests/qemu-iotests/207.out

  Log Message:
  -----------
  block/ssh: add support for sha256 host key fingerprints

Currently the SSH block driver supports MD5 and SHA1 for host key
fingerprints. This is a cryptographically sensitive operation and
so these hash algorithms are inadequate by modern standards. This
adds support for SHA256 which has been supported in libssh since
the 0.8.1 release.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20210622115156.138458-1-berrange@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Acked-by: Richard W.M. Jones <rjones@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: a6945f2287aa7f048b263d7187364cbf1dd5d94d
      
https://github.com/qemu/qemu/commit/a6945f2287aa7f048b263d7187364cbf1dd5d94d
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-06-30 (Wed, 30 Jun 2021)

  Changed paths:
    M backends/cryptodev-vhost.c
    M backends/vhost-user.c
    M hw/block/vhost-user-blk.c
    M hw/net/vhost_net.c
    M hw/scsi/vhost-scsi.c
    M hw/scsi/vhost-user-scsi.c
    M hw/virtio/vhost-user-fs.c
    M hw/virtio/vhost-user-vsock.c
    M hw/virtio/vhost-vsock.c
    M hw/virtio/vhost.c
    M include/hw/virtio/vhost.h

  Log Message:
  -----------
  vhost: Add Error parameter to vhost_dev_init()

This allows callers to return better error messages instead of making
one up while the real error ends up on stderr. Most callers can
immediately make use of this because they already have an Error
parameter themselves. The others just keep printing the error with
error_report_err().

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20210609154658.350308-2-kwolf@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 28770ff935bce723c5799d292bc788770b69a733
      
https://github.com/qemu/qemu/commit/28770ff935bce723c5799d292bc788770b69a733
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-06-30 (Wed, 30 Jun 2021)

  Changed paths:
    M hw/virtio/vhost-backend.c
    M hw/virtio/vhost-user.c
    M hw/virtio/vhost-vdpa.c
    M hw/virtio/vhost.c
    M include/hw/virtio/vhost-backend.h

  Log Message:
  -----------
  vhost: Distinguish errors in vhost_backend_init()

Instead of just returning 0/-1 and letting the caller make up a
meaningless error message, add an Error parameter to allow reporting the
real error and switch to 0/-errno so that different kind of errors can
be distinguished in the caller.

Specifically, in vhost-user, EPROTO is used for all errors that relate
to the connection itself, whereas other error codes are used for errors
relating to the content of the connection. This will allow us later to
automatically reconnect when the connection goes away, without ending up
in an endless loop if it's a permanent error in the configuration.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20210609154658.350308-3-kwolf@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: f2a6e6c4fa1f0d8ca847eecdb4d955b5770c057f
      
https://github.com/qemu/qemu/commit/f2a6e6c4fa1f0d8ca847eecdb4d955b5770c057f
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-06-30 (Wed, 30 Jun 2021)

  Changed paths:
    M hw/virtio/vhost-backend.c
    M hw/virtio/vhost-user.c
    M hw/virtio/vhost-vdpa.c
    M hw/virtio/vhost.c

  Log Message:
  -----------
  vhost: Return 0/-errno in vhost_dev_init()

Instead of just returning 0/-1 and letting the caller make up a
meaningless error message, switch to 0/-errno so that different kinds of
errors can be distinguished in the caller.

This involves changing a few more callbacks in VhostOps to return
0/-errno: .vhost_set_owner(), .vhost_get_features() and
.vhost_virtqueue_set_busyloop_timeout(). The implementations of these
functions are trivial as they generally just send a message to the
backend.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20210609154658.350308-4-kwolf@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: b8da65689ac18f4d288bdc679fb178031bdd929e
      
https://github.com/qemu/qemu/commit/b8da65689ac18f4d288bdc679fb178031bdd929e
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-06-30 (Wed, 30 Jun 2021)

  Changed paths:
    M hw/block/vhost-user-blk.c

  Log Message:
  -----------
  vhost-user-blk: Add Error parameter to vhost_user_blk_start()

Instead of letting the caller make up a meaningless error message, add
an Error parameter to allow reporting the real error.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20210609154658.350308-5-kwolf@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 50de51387f3fda9d3da049d60f8b631164f11f08
      
https://github.com/qemu/qemu/commit/50de51387f3fda9d3da049d60f8b631164f11f08
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-06-30 (Wed, 30 Jun 2021)

  Changed paths:
    M hw/block/vhost-user-blk.c
    M hw/display/vhost-user-gpu.c
    M hw/input/vhost-user-input.c
    M hw/net/vhost_net.c
    M hw/virtio/vhost-user-vsock.c
    M hw/virtio/vhost-user.c
    M hw/virtio/vhost-vdpa.c
    M hw/virtio/vhost.c
    M include/hw/virtio/vhost-backend.h
    M include/hw/virtio/vhost.h

  Log Message:
  -----------
  vhost: Distinguish errors in vhost_dev_get_config()

Instead of just returning 0/-1 and letting the caller make up a
meaningless error message, add an Error parameter to allow reporting the
real error and switch to 0/-errno so that different kind of errors can
be distinguished in the caller.

config_len in vhost_user_get_config() is defined by the device, so if
it's larger than VHOST_USER_MAX_CONFIG_SIZE, this is a programming
error. Turn the corresponding check into an assertion.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20210609154658.350308-6-kwolf@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 415fc2940b1536061c904bf192e097c27d3a787b
      
https://github.com/qemu/qemu/commit/415fc2940b1536061c904bf192e097c27d3a787b
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-06-30 (Wed, 30 Jun 2021)

  Changed paths:
    M hw/block/vhost-user-blk.c

  Log Message:
  -----------
  vhost-user-blk: Factor out vhost_user_blk_realize_connect()

This function is the part that we will want to retry if the connection
is lost during initialisation, so factor it out to keep the following
patch simpler.

The error path for vhost_dev_get_config() forgot disconnecting the
chardev, add this while touching the code.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20210609154658.350308-7-kwolf@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: a527e312b59ac382cb84af4b91f517a846f50705
      
https://github.com/qemu/qemu/commit/a527e312b59ac382cb84af4b91f517a846f50705
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-06-30 (Wed, 30 Jun 2021)

  Changed paths:
    M hw/block/vhost-user-blk.c

  Log Message:
  -----------
  vhost-user-blk: Implement reconnection during realize

Commit dabefdd6 removed code that was supposed to try reconnecting
during .realize(), but actually just crashed and had several design
problems.

This adds the feature back without the crash in simple cases while also
fixing some design problems: Reconnection is now only tried if there was
a problem with the connection and not an error related to the content
(which would fail again the same way in the next attempt). Reconnection
is limited to three attempts (four with the initial attempt) so that we
won't end up in an infinite loop if a problem is permanent. If the
backend restarts three times in the very short time window of device
initialisation, we have bigger problems and erroring out is the right
course of action.

In the case that a connection error occurs and we reconnect, the error
message is printed using error_report_err(), but otherwise ignored.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20210609154658.350308-8-kwolf@redhat.com>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 9c2647f75004c4f7d64c9c0ec55f8c6f0739a8b1
      
https://github.com/qemu/qemu/commit/9c2647f75004c4f7d64c9c0ec55f8c6f0739a8b1
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2021-07-02 (Fri, 02 Jul 2021)

  Changed paths:
    M backends/cryptodev-vhost.c
    M backends/vhost-user.c
    M block.c
    M block/commit.c
    M block/io.c
    M block/ssh.c
    M hw/block/vhost-user-blk.c
    M hw/display/vhost-user-gpu.c
    M hw/input/vhost-user-input.c
    M hw/net/vhost_net.c
    M hw/scsi/vhost-scsi.c
    M hw/scsi/vhost-user-scsi.c
    M hw/virtio/vhost-backend.c
    M hw/virtio/vhost-user-fs.c
    M hw/virtio/vhost-user-vsock.c
    M hw/virtio/vhost-user.c
    M hw/virtio/vhost-vdpa.c
    M hw/virtio/vhost-vsock.c
    M hw/virtio/vhost.c
    M include/block/block.h
    M include/hw/virtio/vhost-backend.h
    M include/hw/virtio/vhost.h
    M include/qemu/osdep.h
    M qapi/block-core.json
    M tests/qemu-iotests/189
    M tests/qemu-iotests/198
    M tests/qemu-iotests/207
    M tests/qemu-iotests/207.out
    M tests/qemu-iotests/245
    M tests/qemu-iotests/245.out
    M tests/unit/test-bdrv-drain.c
    M tests/unit/test-bdrv-graph-mod.c

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

Block layer patches

- Supporting changing 'file' in x-blockdev-reopen
- ssh: add support for sha256 host key fingerprints
- vhost-user-blk: Implement reconnection during realize
- introduce QEMU_AUTO_VFREE
- Don't require password of encrypted backing file for image creation
- Code cleanups

# gpg: Signature made Wed 30 Jun 2021 17:00:55 BST
# gpg:                using RSA key DC3DEB159A9AF95D3D7456FE7F09B272C88F2FD6
# gpg:                issuer "kwolf@redhat.com"
# gpg: Good signature from "Kevin Wolf <kwolf@redhat.com>" [full]
# Primary key fingerprint: DC3D EB15 9A9A F95D 3D74  56FE 7F09 B272 C88F 2FD6

* remotes/kevin/tags/for-upstream: (24 commits)
  vhost-user-blk: Implement reconnection during realize
  vhost-user-blk: Factor out vhost_user_blk_realize_connect()
  vhost: Distinguish errors in vhost_dev_get_config()
  vhost-user-blk: Add Error parameter to vhost_user_blk_start()
  vhost: Return 0/-errno in vhost_dev_init()
  vhost: Distinguish errors in vhost_backend_init()
  vhost: Add Error parameter to vhost_dev_init()
  block/ssh: add support for sha256 host key fingerprints
  block/commit: use QEMU_AUTO_VFREE
  introduce QEMU_AUTO_VFREE
  iotests: Test replacing files with x-blockdev-reopen
  block: Allow changing bs->file on reopen
  block: BDRVReopenState: drop replace_backing_bs field
  block: move supports_backing check to bdrv_set_file_or_backing_noperm()
  block: bdrv_reopen_parse_backing(): simplify handling implicit filters
  block: bdrv_reopen_parse_backing(): don't check frozen child
  block: bdrv_reopen_parse_backing(): don't check aio context
  block: introduce bdrv_set_file_or_backing_noperm()
  block: introduce bdrv_remove_file_or_backing_child()
  block: comment graph-modifying function not updating permissions
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Compare: https://github.com/qemu/qemu/compare/5a67d7735d41...9c2647f75004



reply via email to

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