qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Hanna Reitz <hreitz@redhat.com>
To: qemu-block@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>,
	Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>,
	Eric Blake <eblake@redhat.com>,
	qemu-devel@nongnu.org
Subject: [PATCH v4 02/12] mirror: Keep s->synced on error
Date: Tue,  7 Sep 2021 14:42:35 +0200	[thread overview]
Message-ID: <20210907124245.143492-3-hreitz@redhat.com> (raw)
In-Reply-To: <20210907124245.143492-1-hreitz@redhat.com>

An error does not take us out of the READY phase, which is what
s->synced signifies.  It does of course mean that source and target are
no longer in sync, but that is what s->actively_sync is for -- s->synced
never meant that source and target are in sync, only that they were at
some point (and at that point we transitioned into the READY phase).

The tangible problem is that we transition to READY once we are in sync
and s->synced is false.  By resetting s->synced here, we will transition
from READY to READY once the error is resolved (if the job keeps
running), and that transition is not allowed.

Signed-off-by: Hanna Reitz <hreitz@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
---
 block/mirror.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/block/mirror.c b/block/mirror.c
index 98fc66eabf..d73b704473 100644
--- a/block/mirror.c
+++ b/block/mirror.c
@@ -121,7 +121,6 @@ typedef enum MirrorMethod {
 static BlockErrorAction mirror_error_action(MirrorBlockJob *s, bool read,
                                             int error)
 {
-    s->synced = false;
     s->actively_synced = false;
     if (read) {
         return block_job_error_action(&s->common, s->on_source_error,
-- 
2.31.1



  parent reply	other threads:[~2021-09-07 13:08 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-07 12:42 [PATCH v4 00/12] mirror: Handle errors after READY cancel Hanna Reitz
2021-09-07 12:42 ` [PATCH v4 01/12] job: Context changes in job_completed_txn_abort() Hanna Reitz
2021-09-07 12:42 ` Hanna Reitz [this message]
2021-09-07 12:42 ` [PATCH v4 03/12] mirror: Drop s->synced Hanna Reitz
2021-09-07 12:42 ` [PATCH v4 04/12] job: Force-cancel jobs in a failed transaction Hanna Reitz
2021-09-07 12:42 ` [PATCH v4 05/12] job: @force parameter for job_cancel_sync() Hanna Reitz
2021-09-08 16:20   ` Eric Blake
2021-09-08 16:33   ` Vladimir Sementsov-Ogievskiy
2021-09-14 17:20     ` Hanna Reitz
2021-09-15  7:07       ` Vladimir Sementsov-Ogievskiy
2021-09-07 12:42 ` [PATCH v4 06/12] jobs: Give Job.force_cancel more meaning Hanna Reitz
2021-09-07 12:42 ` [PATCH v4 07/12] job: Add job_cancel_requested() Hanna Reitz
2021-09-07 12:42 ` [PATCH v4 08/12] mirror: Use job_is_cancelled() Hanna Reitz
2021-09-07 12:42 ` [PATCH v4 09/12] mirror: Check job_is_cancelled() earlier Hanna Reitz
2021-09-07 12:42 ` [PATCH v4 10/12] mirror: Stop active mirroring after force-cancel Hanna Reitz
2021-09-07 12:42 ` [PATCH v4 11/12] mirror: Do not clear .cancelled Hanna Reitz
2021-09-07 12:42 ` [PATCH v4 12/12] iotests: Add mirror-ready-cancel-error test Hanna Reitz
2021-09-15  7:45 ` [PATCH v4 00/12] mirror: Handle errors after READY cancel Vladimir Sementsov-Ogievskiy

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=20210907124245.143492-3-hreitz@redhat.com \
    --to=hreitz@redhat.com \
    --cc=eblake@redhat.com \
    --cc=kwolf@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).