qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 072557: MAINTAINERS: update block/rbd.c maint


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 072557: MAINTAINERS: update block/rbd.c maintainer
Date: Sat, 10 Jul 2021 13:27:54 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 0725570b2dcaeedff3031fc271b0d731a7382bfd
      
https://github.com/qemu/qemu/commit/0725570b2dcaeedff3031fc271b0d731a7382bfd
  Author: Ilya Dryomov <idryomov@gmail.com>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS: update block/rbd.c maintainer

Jason has moved on from working on RBD and Ceph.  I'm taking over
his role upstream.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Message-Id: <20210519112513.19694-1-idryomov@gmail.com>
Acked-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 42e4ac9ef5a65f1714dd6f332de160eb63e0d6a4
      
https://github.com/qemu/qemu/commit/42e4ac9ef5a65f1714dd6f332de160eb63e0d6a4
  Author: Or Ozeri <oro@il.ibm.com>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

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

  Log Message:
  -----------
  block/rbd: Add support for rbd image encryption

Starting from ceph Pacific, RBD has built-in support for image-level encryption.
Currently supported formats are LUKS version 1 and 2.

There are 2 new relevant librbd APIs for controlling encryption, both expect an
open image context:

rbd_encryption_format: formats an image (i.e. writes the LUKS header)
rbd_encryption_load: loads encryptor/decryptor to the image IO stack

This commit extends the qemu rbd driver API to support the above.

Signed-off-by: Or Ozeri <oro@il.ibm.com>
Message-Id: <20210627114635.39326-1-oro@il.ibm.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 48672ac058419a2162ea4579d507278e091c1e3e
      
https://github.com/qemu/qemu/commit/48672ac058419a2162ea4579d507278e091c1e3e
  Author: Peter Lieven <pl@kamp.de>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M block/rbd.c
    M meson.build

  Log Message:
  -----------
  block/rbd: bump librbd requirement to luminous release

Ceph Luminous (version 12.2.z) is almost 4 years old at this point.
Bump the requirement to get rid of the ifdef'ry in the code.
Qemu 6.1 dropped the support for RHEL-7 which was the last supported
OS that required an older librbd.

Signed-off-by: Peter Lieven <pl@kamp.de>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Message-Id: <20210702172356.11574-2-idryomov@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 832a93dcb8a870f9debcc2513a040bb3dea858f2
      
https://github.com/qemu/qemu/commit/832a93dcb8a870f9debcc2513a040bb3dea858f2
  Author: Peter Lieven <pl@kamp.de>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M block/rbd.c

  Log Message:
  -----------
  block/rbd: store object_size in BDRVRBDState

Signed-off-by: Peter Lieven <pl@kamp.de>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Message-Id: <20210702172356.11574-3-idryomov@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 6d9214189e22205d42c4ad1fae5af265f0a94dd3
      
https://github.com/qemu/qemu/commit/6d9214189e22205d42c4ad1fae5af265f0a94dd3
  Author: Peter Lieven <pl@kamp.de>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M block/rbd.c

  Log Message:
  -----------
  block/rbd: update s->image_size in qemu_rbd_getlength

While at it just call rbd_get_size and avoid rbd_image_info_t.

Signed-off-by: Peter Lieven <pl@kamp.de>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Message-Id: <20210702172356.11574-4-idryomov@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: c3e5fac534c6effc329b962162f79c799398f013
      
https://github.com/qemu/qemu/commit/c3e5fac534c6effc329b962162f79c799398f013
  Author: Peter Lieven <pl@kamp.de>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M block/rbd.c

  Log Message:
  -----------
  block/rbd: migrate from aio to coroutines

Signed-off-by: Peter Lieven <pl@kamp.de>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Message-Id: <20210702172356.11574-5-idryomov@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: c56ac27d2ad583aa2db5382bb510a33b638a4ab5
      
https://github.com/qemu/qemu/commit/c56ac27d2ad583aa2db5382bb510a33b638a4ab5
  Author: Peter Lieven <pl@kamp.de>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M block/rbd.c

  Log Message:
  -----------
  block/rbd: add write zeroes support

This patch wittingly sets BDRV_REQ_NO_FALLBACK and silently ignores
BDRV_REQ_MAY_UNMAP for older librbd versions.

The rationale for this is as follows (citing Ilya Dryomov current RBD
maintainer):

---8<---
a) remove the BDRV_REQ_MAY_UNMAP check in qemu_rbd_co_pwrite_zeroes()
   and as a consequence always unmap if librbd is too old

   It's not clear what qemu's expectation is but in general Write
   Zeroes is allowed to unmap.  The only guarantee is that subsequent
   reads return zeroes, everything else is a hint.  This is how it is
   specified in the kernel and in the NVMe spec.

   In particular, block/nvme.c implements it as follows:

   if (flags & BDRV_REQ_MAY_UNMAP) {
       cdw12 |= (1 << 25);
   }

   This sets the Deallocate bit.  But if it's not set, the device may
   still deallocate:

   """
   If the Deallocate bit (CDW12.DEAC) is set to '1' in a Write Zeroes
   command, and the namespace supports clearing all bytes to 0h in the
   values read (e.g., bits 2:0 in the DLFEAT field are set to 001b)
   from a deallocated logical block and its metadata (excluding
   protection information), then for each specified logical block, the
   controller:
   - should deallocate that logical block;

   ...

   If the Deallocate bit is cleared to '0' in a Write Zeroes command,
   and the namespace supports clearing all bytes to 0h in the values
   read (e.g., bits 2:0 in the DLFEAT field are set to 001b) from
   a deallocated logical block and its metadata (excluding protection
   information), then, for each specified logical block, the
   controller:
   - may deallocate that logical block;
   """

   
https://nvmexpress.org/wp-content/uploads/NVM-Express-NVM-Command-Set-Specification-2021.06.02-Ratified-1.pdf

b) set BDRV_REQ_NO_FALLBACK in supported_zero_flags

   Again, it's not clear what qemu expects here, but without it we end
   up in a ridiculous situation where specifying the "don't allow slow
   fallback" switch immediately fails all efficient zeroing requests on
   a device where Write Zeroes is always efficient:

   $ qemu-io -c 'help write' | grep -- '-[zun]'
    -n, -- with -z, don't allow slow fallback
    -u, -- with -z, allow unmapping
    -z, -- write zeroes using blk_co_pwrite_zeroes

   $ qemu-io -f rbd -c 'write -z -u -n 0 1M' rbd:foo/bar
   write failed: Operation not supported
--->8---

Signed-off-by: Peter Lieven <pl@kamp.de>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Message-Id: <20210702172356.11574-6-idryomov@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: eb06cbab7e92caf15033c91dfcacd2ba5d7bc88a
      
https://github.com/qemu/qemu/commit/eb06cbab7e92caf15033c91dfcacd2ba5d7bc88a
  Author: Peter Lieven <pl@kamp.de>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M block/rbd.c

  Log Message:
  -----------
  block/rbd: drop qemu_rbd_refresh_limits

librbd supports 1 byte alignment for all aio operations.

Currently, there is no API call to query limits from the Ceph
ObjectStore backend.  So drop the bdrv_refresh_limits completely
until there is such an API call.

Signed-off-by: Peter Lieven <pl@kamp.de>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Message-Id: <20210702172356.11574-7-idryomov@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: c2615bdfbd6d5a1a48438102f8ab328fe30b8e27
      
https://github.com/qemu/qemu/commit/c2615bdfbd6d5a1a48438102f8ab328fe30b8e27
  Author: Heinrich Schuchardt <xypron.glpk@gmx.de>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M block/nfs.c
    M block/ssh.c
    M util/uri.c

  Log Message:
  -----------
  util/uri: do not check argument of uri_free()

uri_free() checks if its argument is NULL in uri_clean() and g_free().
There is no need to check the argument before the call.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Message-Id: <20210629063602.4239-1-xypron.glpk@gmx.de>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Richard W.M. Jones <rjones@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 2c7dd057aa7bd7a875e9b1a53975c220d6380bc4
      
https://github.com/qemu/qemu/commit/2c7dd057aa7bd7a875e9b1a53975c220d6380bc4
  Author: Max Reitz <mreitz@redhat.com>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M block/export/fuse.c
    M tests/qemu-iotests/308
    M tests/qemu-iotests/308.out

  Log Message:
  -----------
  export/fuse: Pass default_permissions for mount

We do not do any permission checks in fuse_open(), so let the kernel do
them.  We already let fuse_getattr() report the proper UNIX permissions,
so this should work the way we want.

This causes a change in 308's reference output, because now opening a
non-writable export with O_RDWR fails already, instead of only actually
attempting to write to it.  (That is an improvement.)

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210625142317.271673-2-mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 8fc54f9428b9763f8003bd5f5dd440946210fc80
      
https://github.com/qemu/qemu/commit/8fc54f9428b9763f8003bd5f5dd440946210fc80
  Author: Max Reitz <mreitz@redhat.com>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M block/export/fuse.c
    M qapi/block-export.json
    M tests/qemu-iotests/308
    M tests/qemu-iotests/common.rc

  Log Message:
  -----------
  export/fuse: Add allow-other option

Without the allow_other mount option, no user (not even root) but the
one who started qemu/the storage daemon can access the export.  Allow
users to configure the export such that such accesses are possible.

While allow_other is probably what users want, we cannot make it an
unconditional default, because passing it is only possible (for non-root
users) if the global fuse.conf configuration file allows it.  Thus, the
default is an 'auto' mode, in which we first try with allow_other, and
then fall back to without.

FuseExport.allow_other reports whether allow_other was actually used as
a mount option or not.  Currently, this information is not used, but a
future patch will let this field decide whether e.g. an export's UID and
GID can be changed through chmod.

One notable thing about 'auto' mode is that libfuse may print error
messages directly to stderr, and so may fusermount (which it executes).
Our export code cannot really filter or hide them.  Therefore, if 'auto'
fails its first attempt and has to fall back, fusermount will print an
error message that mounting with allow_other failed.

This behavior necessitates a change to iotest 308, namely we need to
filter out this error message (because if the first attempt at mounting
with allow_other succeeds, there will be no such message).

Furthermore, common.rc's _make_test_img should use allow-other=off for
FUSE exports, because iotests generally do not need to access images
from other users, so allow-other=on or allow-other=auto have no
advantage.  OTOH, allow-other=on will not work on systems where
user_allow_other is disabled, and with allow-other=auto, we get said
error message that we would need to filter out again.  Just disabling
allow-other is simplest.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210625142317.271673-3-mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 9bad96a8cc669a3b399b9d739b505fdc592acaa4
      
https://github.com/qemu/qemu/commit/9bad96a8cc669a3b399b9d739b505fdc592acaa4
  Author: Max Reitz <mreitz@redhat.com>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M block/export/fuse.c

  Log Message:
  -----------
  export/fuse: Give SET_ATTR_SIZE its own branch

In order to support changing other attributes than the file size in
fuse_setattr(), we have to give each its own independent branch.  This
also applies to the only attribute we do support right now.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20210625142317.271673-4-mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 6aeeaed29ced7ef03e4211193f7e3f537eace871
      
https://github.com/qemu/qemu/commit/6aeeaed29ced7ef03e4211193f7e3f537eace871
  Author: Max Reitz <mreitz@redhat.com>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M block/export/fuse.c

  Log Message:
  -----------
  export/fuse: Let permissions be adjustable

Allow changing the file mode, UID, and GID through SETATTR.

Without allow_other, UID and GID are not allowed to be changed, because
it would not make sense.  Also, changing group or others' permissions
is not allowed either.

For read-only exports, +w cannot be set.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210625142317.271673-5-mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: f29add26d412311926e8095952316d360bd51cbf
      
https://github.com/qemu/qemu/commit/f29add26d412311926e8095952316d360bd51cbf
  Author: Max Reitz <mreitz@redhat.com>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

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

  Log Message:
  -----------
  iotests/308: Test +w on read-only FUSE exports

Test that +w on read-only FUSE exports returns an EROFS error.  u+x on
the other hand should work.  (There is no special reason to choose u+x
here, it simply is like +w another flag that is not set by default.)

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210625142317.271673-6-mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: d9f008e6235b50bc81d3c2c80eaec3065b7f04c6
      
https://github.com/qemu/qemu/commit/d9f008e6235b50bc81d3c2c80eaec3065b7f04c6
  Author: Max Reitz <mreitz@redhat.com>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    A tests/qemu-iotests/tests/fuse-allow-other
    A tests/qemu-iotests/tests/fuse-allow-other.out

  Log Message:
  -----------
  iotests/fuse-allow-other: Test allow-other

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210625142317.271673-7-mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 64cc845bdb0908df247757ea864c1c72bf82b30c
      
https://github.com/qemu/qemu/commit/64cc845bdb0908df247757ea864c1c72bf82b30c
  Author: Peter Lieven <pl@kamp.de>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M block/rbd.c

  Log Message:
  -----------
  block/rbd: fix type of task->complete

task->complete is a bool not an integer.

Signed-off-by: Peter Lieven <pl@kamp.de>
Message-Id: <20210707180449.32665-1-pl@kamp.de>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 6d2f38eb0e2be86af6904f1b768575cc64be37c2
      
https://github.com/qemu/qemu/commit/6d2f38eb0e2be86af6904f1b768575cc64be37c2
  Author: Peter Lieven <pl@kamp.de>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS: add block/rbd.c reviewer

adding myself as a designated reviewer.

Signed-off-by: Peter Lieven <pl@kamp.de>
Message-Id: <20210707180449.32665-2-pl@kamp.de>
Acked-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 84affad1fd4c5251d7cccf4df43b29e9157983a9
      
https://github.com/qemu/qemu/commit/84affad1fd4c5251d7cccf4df43b29e9157983a9
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

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

  Log Message:
  -----------
  vhost-user: Fix backends without multiqueue support

dev->max_queues was never initialised for backends that don't support
VHOST_USER_PROTOCOL_F_MQ, so it would use 0 as the maximum number of
queues to check against and consequently fail for any such backend.

Set it to 1 if the backend doesn't have multiqueue support.

Fixes: c90bd505a3e8210c23d69fecab9ee6f56ec4a161
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20210705171429.29286-1-kwolf@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 2842ff2d81ddd86b1d0dd3b98c46b72bfa5cb4cb
      
https://github.com/qemu/qemu/commit/2842ff2d81ddd86b1d0dd3b98c46b72bfa5cb4cb
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M blockdev.c

  Log Message:
  -----------
  blockdev: fix drive-backup transaction endless drained section

drive_backup_prepare() does bdrv_drained_begin() in hope that
bdrv_drained_end() will be called in drive_backup_clean(). Still we
need to set state->bs for this to work. That's done too late: a lot of
failure paths in drive_backup_prepare() miss setting state->bs. Fix
that.

Fixes: 2288ccfac96281c316db942d10e3f921c1373064
Fixes: https://gitlab.com/qemu-project/qemu/-/issues/399
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210608171852.250775-1-vsementsov@virtuozzo.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 5a385bf5c5cb3069fab17c014cf4b4f629509f1e
      
https://github.com/qemu/qemu/commit/5a385bf5c5cb3069fab17c014cf4b4f629509f1e
  Author: Eric Blake <eblake@redhat.com>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M block/qcow2.c
    M docs/system/deprecated.rst
    M docs/system/removed-features.rst
    M tests/qemu-iotests/061
    M tests/qemu-iotests/061.out
    M tests/qemu-iotests/082.out

  Log Message:
  -----------
  qcow2: Prohibit backing file changes in 'qemu-img amend'

This was deprecated back in bc5ee6da7 (qcow2: Deprecate use of
qemu-img amend to change backing file), and no one in the meantime has
given any reasons why it should be supported.  Time to make change
attempts a hard error (but for convenience, specifying the _same_
backing chain is not forbidden).  Update a couple of iotests to match.

Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <20210503213600.569128-2-eblake@redhat.com>
Reviewed-by: Connor Kuehl <ckuehl@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 497a30dbb065937d67f6c43af6dd78492e1d6f6d
      
https://github.com/qemu/qemu/commit/497a30dbb065937d67f6c43af6dd78492e1d6f6d
  Author: Eric Blake <eblake@redhat.com>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M block.c
    M docs/system/deprecated.rst
    M docs/system/removed-features.rst
    M qemu-img.c
    M tests/qemu-iotests/040
    M tests/qemu-iotests/041
    M tests/qemu-iotests/114
    M tests/qemu-iotests/114.out
    M tests/qemu-iotests/301
    M tests/qemu-iotests/301.out

  Log Message:
  -----------
  qemu-img: Require -F with -b backing image

Back in commit d9f059aa6c (qemu-img: Deprecate use of -b without -F),
we deprecated the ability to create a file with a backing image that
requires qemu to perform format probing.  Qemu can still probe older
files for backwards compatibility, but it is time to finish off the
ability to create such images, due to the potential security risk they
present.  Update a couple of iotests affected by the change.

Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <20210503213600.569128-3-eblake@redhat.com>
Reviewed-by: Connor Kuehl <ckuehl@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: a7cd44bef3d9380181734a93977c3d1df3eef2cf
      
https://github.com/qemu/qemu/commit/a7cd44bef3d9380181734a93977c3d1df3eef2cf
  Author: Eric Blake <eblake@redhat.com>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M qemu-img.c
    M tests/qemu-iotests/114.out

  Log Message:
  -----------
  qemu-img: Improve error for rebase without backing format

When removeing support for qemu-img being able to create backing
chains without embedded backing formats, we caused a poor error
message as caught by iotest 114.  Improve the situation to inform the
user what went wrong.

Suggested-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <20210708155228.2666172-1-eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: bcfd86d6a6432be75fd8700c7c1aabb243adf469
      
https://github.com/qemu/qemu/commit/bcfd86d6a6432be75fd8700c7c1aabb243adf469
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M block/qcow2.c

  Log Message:
  -----------
  qcow2: Fix dangling pointer after reopen for 'file'

Without an external data file, s->data_file is a second pointer with the
same value as bs->file. When changing bs->file to a different BdrvChild
and freeing the old BdrvChild, s->data_file must also be updated,
otherwise it points to freed memory and causes crashes.

This problem was caught by iotests case 245.

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


  Commit: ab5b522879e2a7880418cbd29340675e5427572f
      
https://github.com/qemu/qemu/commit/ab5b522879e2a7880418cbd29340675e5427572f
  Author: Alberto Garcia <berto@igalia.com>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

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

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

Move the code to free a BlockReopenQueue to a separate function.
It will be used in a subsequent patch.

[ kwolf: Also free explicit_options and options, and explicitly
  qobject_ref() the value when it continues to be used. This makes
  future memory leaks less likely. ]

Signed-off-by: Alberto Garcia <berto@igalia.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210708114709.206487-3-kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 6cf42ca2f9782f0335abf3e6b611fbced40cd099
      
https://github.com/qemu/qemu/commit/6cf42ca2f9782f0335abf3e6b611fbced40cd099
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

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

  Log Message:
  -----------
  block: Acquire AioContexts during bdrv_reopen_multiple()

As the BlockReopenQueue can contain nodes in multiple AioContexts, only
one of which may be locked when AIO_WAIT_WHILE() can be called, we can't
let the caller lock the right contexts. Instead, individually lock the
AioContext of a single node when iterating the queue.

Reintroduce bdrv_reopen() as a wrapper for reopening a single node that
drains the node and temporarily drops the AioContext lock for
bdrv_reopen_multiple().

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


  Commit: 3908b7a8994fa5ef7a89aa58cd5a02fc58141592
      
https://github.com/qemu/qemu/commit/3908b7a8994fa5ef7a89aa58cd5a02fc58141592
  Author: Alberto Garcia <berto@igalia.com>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M blockdev.c
    M qapi/block-core.json
    M tests/qemu-iotests/155
    M tests/qemu-iotests/165
    M tests/qemu-iotests/245
    M tests/qemu-iotests/248
    M tests/qemu-iotests/248.out
    M tests/qemu-iotests/296
    M tests/qemu-iotests/298
    M tests/qemu-iotests/tests/remove-bitmap-from-backing

  Log Message:
  -----------
  block: Support multiple reopening with x-blockdev-reopen

[ kwolf: Fixed AioContext locking ]

Signed-off-by: Alberto Garcia <berto@igalia.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210708114709.206487-5-kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 246ebc2d6a3adb8eb7514155daa7e6369ae8d654
      
https://github.com/qemu/qemu/commit/246ebc2d6a3adb8eb7514155daa7e6369ae8d654
  Author: Alberto Garcia <berto@igalia.com>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

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

  Log Message:
  -----------
  iotests: Test reopening multiple devices at the same time

This test swaps the images used by two active block devices.

This is now possible thanks to the new ability to run
x-blockdev-reopen on multiple devices at the same time.

Signed-off-by: Alberto Garcia <berto@igalia.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210708114709.206487-6-kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: e60edf69e2f64e818466019313517a2e6d6b63f4
      
https://github.com/qemu/qemu/commit/e60edf69e2f64e818466019313517a2e6d6b63f4
  Author: Alberto Garcia <berto@igalia.com>
  Date:   2021-07-09 (Fri, 09 Jul 2021)

  Changed paths:
    M blockdev.c
    M qapi/block-core.json
    M tests/qemu-iotests/155
    M tests/qemu-iotests/165
    M tests/qemu-iotests/245
    M tests/qemu-iotests/248
    M tests/qemu-iotests/248.out
    M tests/qemu-iotests/296
    M tests/qemu-iotests/298
    M tests/qemu-iotests/tests/remove-bitmap-from-backing

  Log Message:
  -----------
  block: Make blockdev-reopen stable API

This patch drops the 'x-' prefix from x-blockdev-reopen.

Signed-off-by: Alberto Garcia <berto@igalia.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20210708114709.206487-7-kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 42e1d798a6a01817bdcf722ac27eea01531e21cd
      
https://github.com/qemu/qemu/commit/42e1d798a6a01817bdcf722ac27eea01531e21cd
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2021-07-10 (Sat, 10 Jul 2021)

  Changed paths:
    M MAINTAINERS
    M block.c
    M block/export/fuse.c
    M block/nfs.c
    M block/qcow2.c
    M block/rbd.c
    M block/replication.c
    M block/ssh.c
    M blockdev.c
    M docs/system/deprecated.rst
    M docs/system/removed-features.rst
    M hw/virtio/vhost-user.c
    M include/block/block.h
    M meson.build
    M qapi/block-core.json
    M qapi/block-export.json
    M qemu-img.c
    M qemu-io-cmds.c
    M tests/qemu-iotests/040
    M tests/qemu-iotests/041
    M tests/qemu-iotests/061
    M tests/qemu-iotests/061.out
    M tests/qemu-iotests/082.out
    M tests/qemu-iotests/114
    M tests/qemu-iotests/114.out
    M tests/qemu-iotests/155
    M tests/qemu-iotests/165
    M tests/qemu-iotests/245
    M tests/qemu-iotests/245.out
    M tests/qemu-iotests/248
    M tests/qemu-iotests/248.out
    M tests/qemu-iotests/296
    M tests/qemu-iotests/298
    M tests/qemu-iotests/301
    M tests/qemu-iotests/301.out
    M tests/qemu-iotests/308
    M tests/qemu-iotests/308.out
    M tests/qemu-iotests/common.rc
    A tests/qemu-iotests/tests/fuse-allow-other
    A tests/qemu-iotests/tests/fuse-allow-other.out
    M tests/qemu-iotests/tests/remove-bitmap-from-backing
    M util/uri.c

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

Block layer patches

- Make blockdev-reopen stable
- Remove deprecated qemu-img backing file without format
- rbd: Convert to coroutines and add write zeroes support
- rbd: Updated MAINTAINERS
- export/fuse: Allow other users access to the export
- vhost-user: Fix backends without multiqueue support
- Fix drive-backup transaction endless drained section

# gpg: Signature made Fri 09 Jul 2021 13:49:22 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: (28 commits)
  block: Make blockdev-reopen stable API
  iotests: Test reopening multiple devices at the same time
  block: Support multiple reopening with x-blockdev-reopen
  block: Acquire AioContexts during bdrv_reopen_multiple()
  block: Add bdrv_reopen_queue_free()
  qcow2: Fix dangling pointer after reopen for 'file'
  qemu-img: Improve error for rebase without backing format
  qemu-img: Require -F with -b backing image
  qcow2: Prohibit backing file changes in 'qemu-img amend'
  blockdev: fix drive-backup transaction endless drained section
  vhost-user: Fix backends without multiqueue support
  MAINTAINERS: add block/rbd.c reviewer
  block/rbd: fix type of task->complete
  iotests/fuse-allow-other: Test allow-other
  iotests/308: Test +w on read-only FUSE exports
  export/fuse: Let permissions be adjustable
  export/fuse: Give SET_ATTR_SIZE its own branch
  export/fuse: Add allow-other option
  export/fuse: Pass default_permissions for mount
  util/uri: do not check argument of uri_free()
  ...

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


Compare: https://github.com/qemu/qemu/compare/fc32b91a88cc...42e1d798a6a0



reply via email to

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