mirror: Do not enter a paused job on completion

Currently, it is impossible to complete jobs on standby (i.e. paused
ready jobs), but actually the only thing in mirror_complete() that does
not work quite well with a paused job is the job_enter() at the end.

If we make it conditional, this function works just fine even if the
mirror job is paused.

So technically this is a no-op, but obviously the intention is to accept
block-job-complete even for jobs on standby, which we need this patch
for first.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210409120422.144040-3-mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Max Reitz 2021-04-09 14:04:19 +02:00 committed by Kevin Wolf
parent c41f5b96ee
commit 00769414cd
1 changed files with 5 additions and 1 deletions

View File

@ -1148,7 +1148,11 @@ static void mirror_complete(Job *job, Error **errp)
} }
s->should_complete = true; s->should_complete = true;
job_enter(job);
/* If the job is paused, it will be re-entered when it is resumed */
if (!job->paused) {
job_enter(job);
}
} }
static void coroutine_fn mirror_pause(Job *job) static void coroutine_fn mirror_pause(Job *job)