All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com>
To: qemu-block@nongnu.org
Cc: kwolf@redhat.com, vsementsov@virtuozzo.com, armbru@redhat.com,
	qemu-devel@nongnu.org, andrey.shinkevich@virtuozzo.com,
	den@openvz.org, mreitz@redhat.com, jsnow@redhat.com,
	dgilbert@redhat.com
Subject: [PATCH 1/7] block: prepare block-stream for using COR-filter
Date: Mon, 20 Apr 2020 21:36:40 +0300	[thread overview]
Message-ID: <1587407806-109784-2-git-send-email-andrey.shinkevich@virtuozzo.com> (raw)
In-Reply-To: <1587407806-109784-1-git-send-email-andrey.shinkevich@virtuozzo.com>

This patch is the first one in the series where the COR-filter node
will be hard-coded for using in the block-stream job. The job may
be run with a block-commit job in parallel. Set the condition to
avoid the job conflicts.

Signed-off-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com>
---
 blockdev.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/blockdev.c b/blockdev.c
index 758e0b5..72d28ce 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -3297,7 +3297,9 @@ void qmp_block_stream(bool has_job_id, const char *job_id, const char *device,
     }
 
     /* Check for op blockers in the whole chain between bs and base */
-    for (iter = bs; iter && iter != base_bs; iter = bdrv_filtered_bs(iter)) {
+    for (iter = bdrv_skip_rw_filters(bs);
+        iter && iter != bdrv_skip_rw_filters(base_bs);
+        iter = bdrv_backing_chain_next(iter)) {
         if (bdrv_op_is_blocked(iter, BLOCK_OP_TYPE_STREAM, errp)) {
             goto out;
         }
@@ -3455,7 +3457,8 @@ void qmp_block_commit(bool has_job_id, const char *job_id, const char *device,
 
     assert(bdrv_get_aio_context(base_bs) == aio_context);
 
-    for (iter = top_bs; iter != bdrv_filtered_bs(base_bs);
+    for (iter = bdrv_skip_rw_filters(top_bs);
+         iter != bdrv_filtered_bs(base_bs);
          iter = bdrv_filtered_bs(iter))
     {
         if (bdrv_op_is_blocked(iter, BLOCK_OP_TYPE_COMMIT_TARGET, errp)) {
-- 
1.8.3.1



  reply	other threads:[~2020-04-20 18:40 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-20 18:36 [PATCH 0/7] Apply COR-filter to the block-stream permanently Andrey Shinkevich
2020-04-20 18:36 ` Andrey Shinkevich [this message]
2020-04-21 12:23   ` [PATCH 1/7] block: prepare block-stream for using COR-filter Vladimir Sementsov-Ogievskiy
2020-04-20 18:36 ` [PATCH 2/7] stream: exclude a link to filter from freezing Andrey Shinkevich
2020-04-21 12:27   ` Vladimir Sementsov-Ogievskiy
2020-04-20 18:36 ` [PATCH 3/7] block: protect parallel jobs from overlapping Andrey Shinkevich
2020-04-21 12:33   ` Vladimir Sementsov-Ogievskiy
2020-04-20 18:36 ` [PATCH 4/7] copy-on-read: Support refreshing filename Andrey Shinkevich
2020-04-21 12:36   ` Vladimir Sementsov-Ogievskiy
2020-04-20 18:36 ` [PATCH 5/7] qapi: add filter-node-name to block-stream Andrey Shinkevich
2020-04-20 18:43   ` Eric Blake
2020-04-21 12:05   ` Dr. David Alan Gilbert
2020-04-21 12:40   ` Vladimir Sementsov-Ogievskiy
2020-04-21 12:45     ` Vladimir Sementsov-Ogievskiy
2020-04-20 18:36 ` [PATCH 6/7] iotests: prepare 245 for using filter in block-stream Andrey Shinkevich
2020-04-20 18:36 ` [PATCH 7/7] block: apply COR-filter to block-stream jobs Andrey Shinkevich
2020-04-21 12:58   ` Vladimir Sementsov-Ogievskiy
2020-04-27  4:08     ` Andrey Shinkevich
2020-04-27  6:44       ` Vladimir Sementsov-Ogievskiy
2020-04-21 13:12 ` [PATCH 0/7] Apply COR-filter to the block-stream permanently Vladimir Sementsov-Ogievskiy
2020-04-27  4:13   ` Andrey Shinkevich

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=1587407806-109784-2-git-send-email-andrey.shinkevich@virtuozzo.com \
    --to=andrey.shinkevich@virtuozzo.com \
    --cc=armbru@redhat.com \
    --cc=den@openvz.org \
    --cc=dgilbert@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=vsementsov@virtuozzo.com \
    /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.