[PULL v3 00/38] Block layer patches

Kevin Wolf posted 38 patches 2 weeks, 1 day ago
Only 0 patches received!
There is a newer version of this series
qapi/block-core.json                               | 123 +++++++-
include/block/block-common.h                       |  11 +-
include/block/block-io.h                           |  41 ++-
include/block/block_int-common.h                   |  26 +-
include/block/block_int-io.h                       |   5 +-
include/block/nbd.h                                |   1 +
include/block/qapi.h                               |  14 +-
include/qemu/osdep.h                               |  44 +++
include/sysemu/block-backend-io.h                  |  31 +-
block.c                                            |  88 +++---
block/blkdebug.c                                   |  11 +-
block/blkio.c                                      |  15 +-
block/blklogwrites.c                               |   6 +-
block/blkreplay.c                                  |   6 +-
block/blkverify.c                                  |   6 +-
block/block-backend.c                              |  38 +--
block/commit.c                                     |   4 +-
block/copy-on-read.c                               |  18 +-
block/crypto.c                                     |  14 +-
block/curl.c                                       |  10 +-
block/file-posix.c                                 | 137 +++++----
block/file-win32.c                                 |  18 +-
block/filter-compress.c                            |  20 +-
block/gluster.c                                    |  23 +-
block/io.c                                         |  76 ++---
block/iscsi.c                                      |  17 +-
block/mirror.c                                     |   6 +-
block/monitor/block-hmp-cmds.c                     |   2 +-
block/nbd.c                                        |   8 +-
block/nfs.c                                        |   4 +-
block/null.c                                       |  13 +-
block/nvme.c                                       |  14 +-
block/preallocate.c                                |  16 +-
block/qapi.c                                       | 317 ++++++++++++++++-----
block/qcow.c                                       |   5 +-
block/qcow2-bitmap.c                               |   5 +-
block/qcow2-refcount.c                             |   2 +-
block/qcow2.c                                      |  17 +-
block/qed.c                                        |  11 +-
block/quorum.c                                     |   8 +-
block/raw-format.c                                 |  25 +-
block/rbd.c                                        |   9 +-
block/replication.c                                |   6 +-
block/ssh.c                                        |   4 +-
block/throttle.c                                   |   6 +-
block/vdi.c                                        |   7 +-
block/vhdx.c                                       |   5 +-
block/vmdk.c                                       |  22 +-
block/vpc.c                                        |   5 +-
blockdev.c                                         |   8 +-
hw/block/block.c                                   |  36 ++-
hw/scsi/scsi-disk.c                                |   5 +
qemu-img.c                                         | 100 +++++--
qemu-io-cmds.c                                     |  62 +---
tests/unit/test-block-iothread.c                   |   3 +
scripts/block-coroutine-wrapper.py                 |  20 +-
tests/qemu-iotests/iotests.py                      |  18 +-
block/meson.build                                  |   1 +
tests/qemu-iotests/065                             |   2 +-
tests/qemu-iotests/106                             |   4 +-
tests/qemu-iotests/214                             |   6 +-
tests/qemu-iotests/262                             |   3 +-
tests/qemu-iotests/302.out                         |   5 +
tests/qemu-iotests/308                             |   4 +-
tests/qemu-iotests/312                             |   1 +
tests/qemu-iotests/common.filter                   |  22 +-
tests/qemu-iotests/common.rc                       |  22 +-
tests/qemu-iotests/tests/qemu-img-close-errors     |  95 ++++++
tests/qemu-iotests/tests/qemu-img-close-errors.out |  23 ++
69 files changed, 1208 insertions(+), 552 deletions(-)
create mode 100755 tests/qemu-iotests/tests/qemu-img-close-errors
create mode 100644 tests/qemu-iotests/tests/qemu-img-close-errors.out
[PULL v3 00/38] Block layer patches
Posted by Kevin Wolf 2 weeks, 1 day ago
The following changes since commit 13356edb87506c148b163b8c7eb0695647d00c2a:

  Merge tag 'block-pull-request' of https://gitlab.com/stefanha/qemu into staging (2023-01-24 09:45:33 +0000)

are available in the Git repository at:

  https://repo.or.cz/qemu/kevin.git tags/for-upstream

for you to fetch changes up to 1fb9d23f06e0eea297fd57ac62f0fa9efbce865f:

  qemu-img: Change info key names for protocol nodes (2023-01-24 18:40:18 +0100)

v3:
- Make the compiler happier on BSD and CentOS Stream 8

v2:
- Rebased to resolve merge conflicts in coroutine.h

----------------------------------------------------------------
Block layer patches

- qemu-img info: Show protocol-level information
- Move more functions to coroutines
- Make coroutine annotations ready for static analysis
- qemu-img: Fix exit code for errors closing the image
- qcow2 bitmaps: Fix theoretical corruption in error path
- pflash: Only load non-zero parts of backend image to save memory
- Code cleanup and test case improvements

----------------------------------------------------------------
Alberto Faria (2):
      coroutine: annotate coroutine_fn for libclang
      block: Add no_coroutine_fn and coroutine_mixed_fn marker

Emanuele Giuseppe Esposito (14):
      block-coroutine-wrapper: support void functions
      block: Convert bdrv_io_plug() to co_wrapper
      block: Convert bdrv_io_unplug() to co_wrapper
      block: Convert bdrv_is_inserted() to co_wrapper
      block: Rename refresh_total_sectors to bdrv_refresh_total_sectors
      block: Convert bdrv_refresh_total_sectors() to co_wrapper_mixed
      block-backend: use bdrv_getlength instead of blk_getlength
      block: use bdrv_co_refresh_total_sectors when possible
      block: Convert bdrv_get_allocated_file_size() to co_wrapper
      block: Convert bdrv_get_info() to co_wrapper_mixed
      block: Convert bdrv_eject() to co_wrapper
      block: Convert bdrv_lock_medium() to co_wrapper
      block: Convert bdrv_debug_event() to co_wrapper_mixed
      block: Rename bdrv_load/save_vmstate() to bdrv_co_load/save_vmstate()

Hanna Reitz (12):
      block: Improve empty format-specific info dump
      block/file: Add file-specific image info
      block/vmdk: Change extent info type
      block: Split BlockNodeInfo off of ImageInfo
      qemu-img: Use BlockNodeInfo
      block/qapi: Let bdrv_query_image_info() recurse
      block/qapi: Introduce BlockGraphInfo
      block/qapi: Add indentation to bdrv_node_info_dump()
      iotests: Filter child node information
      iotests/106, 214, 308: Read only one size line
      qemu-img: Let info print block graph
      qemu-img: Change info key names for protocol nodes

Kevin Wolf (4):
      qcow2: Fix theoretical corruption in store_bitmap() error path
      qemu-img commit: Report errors while closing the image
      qemu-img bitmap: Report errors while closing the image
      qemu-iotests: Test qemu-img bitmap/commit exit code on error

Paolo Bonzini (2):
      qemu-io: do not reinvent the blk_pwrite_zeroes wheel
      block: remove bdrv_coroutine_enter

Philippe Mathieu-Daudé (1):
      block/nbd: Add missing <qemu/bswap.h> include

Thomas Huth (2):
      tests/qemu-iotests/312: Mark "quorum" as required driver
      tests/qemu-iotests/262: Check for availability of "blkverify" first

Xiang Zheng (1):
      pflash: Only read non-zero parts of backend image

 qapi/block-core.json                               | 123 +++++++-
 include/block/block-common.h                       |  11 +-
 include/block/block-io.h                           |  41 ++-
 include/block/block_int-common.h                   |  26 +-
 include/block/block_int-io.h                       |   5 +-
 include/block/nbd.h                                |   1 +
 include/block/qapi.h                               |  14 +-
 include/qemu/osdep.h                               |  44 +++
 include/sysemu/block-backend-io.h                  |  31 +-
 block.c                                            |  88 +++---
 block/blkdebug.c                                   |  11 +-
 block/blkio.c                                      |  15 +-
 block/blklogwrites.c                               |   6 +-
 block/blkreplay.c                                  |   6 +-
 block/blkverify.c                                  |   6 +-
 block/block-backend.c                              |  38 +--
 block/commit.c                                     |   4 +-
 block/copy-on-read.c                               |  18 +-
 block/crypto.c                                     |  14 +-
 block/curl.c                                       |  10 +-
 block/file-posix.c                                 | 137 +++++----
 block/file-win32.c                                 |  18 +-
 block/filter-compress.c                            |  20 +-
 block/gluster.c                                    |  23 +-
 block/io.c                                         |  76 ++---
 block/iscsi.c                                      |  17 +-
 block/mirror.c                                     |   6 +-
 block/monitor/block-hmp-cmds.c                     |   2 +-
 block/nbd.c                                        |   8 +-
 block/nfs.c                                        |   4 +-
 block/null.c                                       |  13 +-
 block/nvme.c                                       |  14 +-
 block/preallocate.c                                |  16 +-
 block/qapi.c                                       | 317 ++++++++++++++++-----
 block/qcow.c                                       |   5 +-
 block/qcow2-bitmap.c                               |   5 +-
 block/qcow2-refcount.c                             |   2 +-
 block/qcow2.c                                      |  17 +-
 block/qed.c                                        |  11 +-
 block/quorum.c                                     |   8 +-
 block/raw-format.c                                 |  25 +-
 block/rbd.c                                        |   9 +-
 block/replication.c                                |   6 +-
 block/ssh.c                                        |   4 +-
 block/throttle.c                                   |   6 +-
 block/vdi.c                                        |   7 +-
 block/vhdx.c                                       |   5 +-
 block/vmdk.c                                       |  22 +-
 block/vpc.c                                        |   5 +-
 blockdev.c                                         |   8 +-
 hw/block/block.c                                   |  36 ++-
 hw/scsi/scsi-disk.c                                |   5 +
 qemu-img.c                                         | 100 +++++--
 qemu-io-cmds.c                                     |  62 +---
 tests/unit/test-block-iothread.c                   |   3 +
 scripts/block-coroutine-wrapper.py                 |  20 +-
 tests/qemu-iotests/iotests.py                      |  18 +-
 block/meson.build                                  |   1 +
 tests/qemu-iotests/065                             |   2 +-
 tests/qemu-iotests/106                             |   4 +-
 tests/qemu-iotests/214                             |   6 +-
 tests/qemu-iotests/262                             |   3 +-
 tests/qemu-iotests/302.out                         |   5 +
 tests/qemu-iotests/308                             |   4 +-
 tests/qemu-iotests/312                             |   1 +
 tests/qemu-iotests/common.filter                   |  22 +-
 tests/qemu-iotests/common.rc                       |  22 +-
 tests/qemu-iotests/tests/qemu-img-close-errors     |  95 ++++++
 tests/qemu-iotests/tests/qemu-img-close-errors.out |  23 ++
 69 files changed, 1208 insertions(+), 552 deletions(-)
 create mode 100755 tests/qemu-iotests/tests/qemu-img-close-errors
 create mode 100644 tests/qemu-iotests/tests/qemu-img-close-errors.out


Re: [PULL v3 00/38] Block layer patches
Posted by Peter Maydell 1 week ago
On Tue, 24 Jan 2023 at 17:45, Kevin Wolf <kwolf@redhat.com> wrote:
>
> The following changes since commit 13356edb87506c148b163b8c7eb0695647d00c2a:
>
>   Merge tag 'block-pull-request' of https://gitlab.com/stefanha/qemu into staging (2023-01-24 09:45:33 +0000)
>
> are available in the Git repository at:
>
>   https://repo.or.cz/qemu/kevin.git tags/for-upstream
>
> for you to fetch changes up to 1fb9d23f06e0eea297fd57ac62f0fa9efbce865f:
>
>   qemu-img: Change info key names for protocol nodes (2023-01-24 18:40:18 +0100)
>
> v3:
> - Make the compiler happier on BSD and CentOS Stream 8
>
> v2:
> - Rebased to resolve merge conflicts in coroutine.h
>
> ----------------------------------------------------------------
> Block layer patches
>
> - qemu-img info: Show protocol-level information
> - Move more functions to coroutines
> - Make coroutine annotations ready for static analysis
> - qemu-img: Fix exit code for errors closing the image
> - qcow2 bitmaps: Fix theoretical corruption in error path
> - pflash: Only load non-zero parts of backend image to save memory
> - Code cleanup and test case improvements

Fails tests on macos-12:

https://gitlab.com/qemu-project/qemu/-/jobs/3696008061

The line
+/private/var/folders/76/zy5ktkns50v6gt5g8r0sf6sc0000gn/T/cirrus-ci-build/tests/qemu-iotests/tests/qemu-img-close-errors:
line 62: truncate: command not found

in the logs suggests that the new script is assuming the
presence of a command that doesn't exist on all hosts.

The openbsd VM also hits this.

thanks
-- PMM