All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
To: Max Reitz <mreitz@redhat.com>,
	"qemu-block@nongnu.org" <qemu-block@nongnu.org>
Cc: Kevin Wolf <kwolf@redhat.com>, Alberto Garcia <berto@igalia.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: Re: [PATCH for-5.0 v2 00/23] block: Fix check_to_replace_node()
Date: Fri, 29 Nov 2019 12:24:23 +0000	[thread overview]
Message-ID: <a134c8a6-17c1-34bc-79f6-76062ff0c668@virtuozzo.com> (raw)
In-Reply-To: <20191111160216.197086-1-mreitz@redhat.com>

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: <20191108123455.39445-1-mreitz@redhat.com>
> (“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

  parent reply	other threads:[~2019-11-29 12:51 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-11 16:01 [PATCH for-5.0 v2 00/23] block: Fix check_to_replace_node() Max Reitz
2019-11-11 16:01 ` [PATCH for-5.0 v2 01/23] blockdev: Allow external snapshots everywhere Max Reitz
2019-11-11 16:01 ` [PATCH for-5.0 v2 02/23] blockdev: Allow resizing everywhere Max Reitz
2019-12-06 14:04   ` Alberto Garcia
2019-12-09 13:56     ` Max Reitz
2019-11-11 16:01 ` [PATCH for-5.0 v2 03/23] block: Drop bdrv_is_first_non_filter() Max Reitz
2019-11-11 16:01 ` [PATCH for-5.0 v2 04/23] iotests: Let 041 use -blockdev for quorum children Max Reitz
2019-11-11 16:01 ` [PATCH for-5.0 v2 05/23] quorum: Fix child permissions Max Reitz
2019-11-29  9:14   ` Vladimir Sementsov-Ogievskiy
2019-11-11 16:01 ` [PATCH for-5.0 v2 06/23] block: Add bdrv_recurse_can_replace() Max Reitz
2019-11-29  9:34   ` Vladimir Sementsov-Ogievskiy
2019-11-29 10:23     ` Max Reitz
2019-11-29 11:04       ` Vladimir Sementsov-Ogievskiy
2019-11-11 16:02 ` [PATCH for-5.0 v2 07/23] blkverify: Implement .bdrv_recurse_can_replace() Max Reitz
2019-11-29  9:41   ` Vladimir Sementsov-Ogievskiy
2019-11-11 16:02 ` [PATCH for-5.0 v2 08/23] quorum: Store children in own structure Max Reitz
2019-11-29  9:46   ` Vladimir Sementsov-Ogievskiy
2019-11-11 16:02 ` [PATCH for-5.0 v2 09/23] quorum: Add QuorumChild.to_be_replaced Max Reitz
2019-11-29  9:59   ` Vladimir Sementsov-Ogievskiy
2019-11-11 16:02 ` [PATCH for-5.0 v2 10/23] quorum: Implement .bdrv_recurse_can_replace() Max Reitz
2019-11-29 10:18   ` Vladimir Sementsov-Ogievskiy
2019-11-29 12:50     ` Max Reitz
2020-02-05 15:55   ` Kevin Wolf
2020-02-05 16:03     ` Kevin Wolf
2020-02-06 10:21     ` Max Reitz
2020-02-06 14:42       ` Kevin Wolf
2020-02-06 15:19         ` Max Reitz
2020-02-06 15:42           ` Kevin Wolf
2020-02-06 16:44             ` Max Reitz
2019-11-11 16:02 ` [PATCH for-5.0 v2 11/23] block: Use bdrv_recurse_can_replace() Max Reitz
2019-11-29 11:07   ` Vladimir Sementsov-Ogievskiy
2020-02-05 15:57   ` Kevin Wolf
2019-11-11 16:02 ` [PATCH for-5.0 v2 12/23] block: Remove bdrv_recurse_is_first_non_filter() Max Reitz
2019-11-11 16:02 ` [PATCH for-5.0 v2 13/23] mirror: Double-check immediately before replacing Max Reitz
2019-11-29 11:18   ` Vladimir Sementsov-Ogievskiy
2019-11-11 16:02 ` [PATCH for-5.0 v2 14/23] quorum: Stop marking it as a filter Max Reitz
2019-11-11 16:02 ` [PATCH for-5.0 v2 15/23] mirror: Prevent loops Max Reitz
2019-11-29 12:01   ` Vladimir Sementsov-Ogievskiy
2019-11-29 13:46     ` Max Reitz
2019-11-29 13:55       ` Vladimir Sementsov-Ogievskiy
2019-11-29 14:17         ` Max Reitz
2019-11-29 14:26           ` Vladimir Sementsov-Ogievskiy
2019-11-29 14:38             ` Max Reitz
2019-12-02 12:12   ` Vladimir Sementsov-Ogievskiy
2019-12-09 14:43     ` Max Reitz
2019-12-13 11:18       ` Vladimir Sementsov-Ogievskiy
2019-12-20 11:39         ` Max Reitz
2019-12-20 11:55           ` Vladimir Sementsov-Ogievskiy
2019-12-20 12:10             ` Max Reitz
2019-11-11 16:02 ` [PATCH for-5.0 v2 16/23] iotests: Use complete_and_wait() in 155 Max Reitz
2019-11-11 16:02 ` [PATCH for-5.0 v2 17/23] iotests: Use skip_if_unsupported decorator in 041 Max Reitz
2019-12-03 12:03   ` Vladimir Sementsov-Ogievskiy
2019-11-11 16:02 ` [PATCH for-5.0 v2 18/23] iotests: Add VM.assert_block_path() Max Reitz
2019-12-03 12:59   ` Vladimir Sementsov-Ogievskiy
2019-12-09 15:10     ` Max Reitz
2019-12-13 11:26       ` Vladimir Sementsov-Ogievskiy
2019-12-13 11:27   ` Vladimir Sementsov-Ogievskiy
2019-12-20 11:42     ` Max Reitz
2019-11-11 16:02 ` [PATCH for-5.0 v2 19/23] iotests: Resolve TODOs in 041 Max Reitz
2019-12-03 13:32   ` Vladimir Sementsov-Ogievskiy
2019-12-03 13:33     ` Vladimir Sementsov-Ogievskiy
2019-12-09 15:15       ` Max Reitz
2019-12-13 11:31         ` Vladimir Sementsov-Ogievskiy
2019-11-11 16:02 ` [PATCH for-5.0 v2 20/23] iotests: Use self.image_len in TestRepairQuorum Max Reitz
2019-11-11 16:02 ` [PATCH for-5.0 v2 21/23] iotests: Add tests for invalid Quorum @replaces Max Reitz
2019-12-03 14:40   ` Vladimir Sementsov-Ogievskiy
2019-11-11 16:02 ` [PATCH for-5.0 v2 22/23] iotests: Check that @replaces can replace filters Max Reitz
2019-12-03 15:58   ` Vladimir Sementsov-Ogievskiy
2019-12-09 15:17     ` Max Reitz
2019-11-11 16:02 ` [PATCH for-5.0 v2 23/23] iotests: Mirror must not attempt to create loops Max Reitz
2019-12-03 17:03   ` Vladimir Sementsov-Ogievskiy
2019-11-29 12:24 ` Vladimir Sementsov-Ogievskiy [this message]
2019-11-29 12:49   ` [PATCH for-5.0 v2 00/23] block: Fix check_to_replace_node() Max Reitz
2019-11-29 12:55     ` Vladimir Sementsov-Ogievskiy
2019-11-29 13:08       ` Max Reitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a134c8a6-17c1-34bc-79f6-76062ff0c668@virtuozzo.com \
    --to=vsementsov@virtuozzo.com \
    --cc=berto@igalia.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.