[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 02/12] mirror: Keep s->synced on error
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[PULL 02/12] mirror: Keep s->synced on error |
Date: |
Tue, 21 Sep 2021 13:20:07 +0300 |
From: Hanna Reitz <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>
Message-Id: <20210907124245.143492-3-hreitz@redhat.com>
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
---
block/mirror.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/block/mirror.c b/block/mirror.c
index 85b781bc21..cad61496c2 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.29.2
- [PULL 00/12] jobs: mirror: Handle errors after READY cancel, Vladimir Sementsov-Ogievskiy, 2021/09/21
- [PULL 04/12] job: Force-cancel jobs in a failed transaction, Vladimir Sementsov-Ogievskiy, 2021/09/21
- [PULL 01/12] job: Context changes in job_completed_txn_abort(), Vladimir Sementsov-Ogievskiy, 2021/09/21
- [PULL 05/12] job: @force parameter for job_cancel_sync(), Vladimir Sementsov-Ogievskiy, 2021/09/21
- [PULL 02/12] mirror: Keep s->synced on error,
Vladimir Sementsov-Ogievskiy <=
- [PULL 06/12] jobs: Give Job.force_cancel more meaning, Vladimir Sementsov-Ogievskiy, 2021/09/21
- [PULL 07/12] job: Add job_cancel_requested(), Vladimir Sementsov-Ogievskiy, 2021/09/21
- [PULL 09/12] mirror: Check job_is_cancelled() earlier, Vladimir Sementsov-Ogievskiy, 2021/09/21
- [PULL 08/12] mirror: Use job_is_cancelled(), Vladimir Sementsov-Ogievskiy, 2021/09/21
- [PULL 03/12] mirror: Drop s->synced, Vladimir Sementsov-Ogievskiy, 2021/09/21
- [PULL 10/12] mirror: Stop active mirroring after force-cancel, Vladimir Sementsov-Ogievskiy, 2021/09/21
- [PULL 11/12] mirror: Do not clear .cancelled, Vladimir Sementsov-Ogievskiy, 2021/09/21
- [PULL 12/12] iotests: Add mirror-ready-cancel-error test, Vladimir Sementsov-Ogievskiy, 2021/09/21
- Re: [PULL 00/12] jobs: mirror: Handle errors after READY cancel, Richard Henderson, 2021/09/22