qemu-block
[Top][All Lists]
Advanced

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

Re: [PATCH for-5.0 v2 00/23] block: Fix check_to_replace_node()


From: Vladimir Sementsov-Ogievskiy
Subject: Re: [PATCH for-5.0 v2 00/23] block: Fix check_to_replace_node()
Date: Fri, 29 Nov 2019 12:24:23 +0000

3 last iotests patches don't apply now.. Do you have a branch pushed somewhere?

11.11.2019 19:01, Max Reitz wrote:
> Based-on: <address@hidden>
> (“iotests: Test failing mirror complete”)
> 
> (Because both add cases to 041.)
> 
> 
> Hi,
> 
> For what this series does, see the cover letter of v1:
> 
> https://lists.nongnu.org/archive/html/qemu-block/2019-09/msg01027.html
> 
> 
> Now, in v2 I’ve addressed Vladimir’s comments:
> - Patch 5: Extend explanation in the commit message
> - Patch 6: Prefer driver-specific .bdrv_recurse_can_replace()
>             implementation before the generic one for filters
> - Patch 8: Some more s/BdrvChild \*/QuorumChild/
> - Patch 15: Fix typo in the commit message
> - Patch 17: Added
> - Patch 18:
>    - Split @path into @root + @path
>    - In one instance, use x = next(y, z) instead of
>      try: x = next(y); except StopIteration: x = z;
>    - %s/'''/"""/
> - Patch 19: Fallout from the patch 18 changes
> - Patch 20: Fix in the commit message (uncommenting -> commenting out)
> - Patch 21:
>    - Check full stderr message by inspecting the VM log
>    - Fallout from the patch 18 changes
>    - %s/'''/"""/
> - Patch 22:
>    - Skip case if COR is unsupported
>    - Fallout from the patch 18 changes
>    - %s/'''/"""/
> - Patch 23:
>    - Added more comments
>    - Skip cases if throttle/COR/quorum (as appropriate) is unsupported
>    - Use imgfmt instead of hard-coding qcow2
>    - Fallout from the patch 18 changes
>    - %s/'''/"""/
> 
> 
> git-backport-diff against v1:
> 
> Key:
> [----] : patches are identical
> [####] : number of functional differences between upstream/downstream patch
> [down] : patch is downstream-only
> The flags [FC] indicate (F)unctional and (C)ontextual differences, 
> respectively
> 
> 001/23:[----] [--] 'blockdev: Allow external snapshots everywhere'
> 002/23:[----] [--] 'blockdev: Allow resizing everywhere'
> 003/23:[----] [--] 'block: Drop bdrv_is_first_non_filter()'
> 004/23:[----] [--] 'iotests: Let 041 use -blockdev for quorum children'
> 005/23:[----] [--] 'quorum: Fix child permissions'
> 006/23:[0012] [FC] 'block: Add bdrv_recurse_can_replace()'
> 007/23:[----] [--] 'blkverify: Implement .bdrv_recurse_can_replace()'
> 008/23:[0006] [FC] 'quorum: Store children in own structure'
> 009/23:[----] [--] 'quorum: Add QuorumChild.to_be_replaced'
> 010/23:[----] [--] 'quorum: Implement .bdrv_recurse_can_replace()'
> 011/23:[----] [--] 'block: Use bdrv_recurse_can_replace()'
> 012/23:[----] [--] 'block: Remove bdrv_recurse_is_first_non_filter()'
> 013/23:[----] [--] 'mirror: Double-check immediately before replacing'
> 014/23:[----] [--] 'quorum: Stop marking it as a filter'
> 015/23:[----] [--] 'mirror: Prevent loops'
> 016/23:[----] [--] 'iotests: Use complete_and_wait() in 155'
> 017/23:[down] 'iotests: Use skip_if_unsupported decorator in 041'
> 018/23:[0037] [FC] 'iotests: Add VM.assert_block_path()'
> 019/23:[0004] [FC] 'iotests: Resolve TODOs in 041'
> 020/23:[----] [--] 'iotests: Use self.image_len in TestRepairQuorum'
> 021/23:[0027] [FC] 'iotests: Add tests for invalid Quorum @replaces'
> 022/23:[0007] [FC] 'iotests: Check that @replaces can replace filters'
> 023/23:[0141] [FC] 'iotests: Mirror must not attempt to create loops'
> 
> 
> Max Reitz (23):
>    blockdev: Allow external snapshots everywhere
>    blockdev: Allow resizing everywhere
>    block: Drop bdrv_is_first_non_filter()
>    iotests: Let 041 use -blockdev for quorum children
>    quorum: Fix child permissions
>    block: Add bdrv_recurse_can_replace()
>    blkverify: Implement .bdrv_recurse_can_replace()
>    quorum: Store children in own structure
>    quorum: Add QuorumChild.to_be_replaced
>    quorum: Implement .bdrv_recurse_can_replace()
>    block: Use bdrv_recurse_can_replace()
>    block: Remove bdrv_recurse_is_first_non_filter()
>    mirror: Double-check immediately before replacing
>    quorum: Stop marking it as a filter
>    mirror: Prevent loops
>    iotests: Use complete_and_wait() in 155
>    iotests: Use skip_if_unsupported decorator in 041
>    iotests: Add VM.assert_block_path()
>    iotests: Resolve TODOs in 041
>    iotests: Use self.image_len in TestRepairQuorum
>    iotests: Add tests for invalid Quorum @replaces
>    iotests: Check that @replaces can replace filters
>    iotests: Mirror must not attempt to create loops
> 
>   block.c                       | 115 ++++++----
>   block/blkverify.c             |  20 +-
>   block/copy-on-read.c          |   9 -
>   block/mirror.c                |  31 ++-
>   block/quorum.c                | 161 +++++++++++---
>   block/replication.c           |   7 -
>   block/throttle.c              |   8 -
>   blockdev.c                    |  58 ++++-
>   include/block/block.h         |   5 -
>   include/block/block_int.h     |  19 +-
>   tests/qemu-iotests/041        | 402 ++++++++++++++++++++++++++++++----
>   tests/qemu-iotests/041.out    |   4 +-
>   tests/qemu-iotests/155        |   7 +-
>   tests/qemu-iotests/iotests.py |  59 +++++
>   14 files changed, 715 insertions(+), 190 deletions(-)
> 


-- 
Best regards,
Vladimir

reply via email to

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