diff options
| author | Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> | 2021-04-21 10:58:58 +0300 |
|---|---|---|
| committer | Max Reitz <mreitz@redhat.com> | 2021-05-14 16:14:10 +0200 |
| commit | 9c785cd714b3c368503ba3aed4266a77056cae29 (patch) | |
| tree | 2f1978b1bc246ff0dc57e48f71acbcdb496f1d47 /job.c | |
| parent | 78632a3d1685454fec83f83586c675e7f2a1a84a (diff) | |
| download | focaccia-qemu-9c785cd714b3c368503ba3aed4266a77056cae29.tar.gz focaccia-qemu-9c785cd714b3c368503ba3aed4266a77056cae29.zip | |
mirror: stop cancelling in-flight requests on non-force cancel in READY
If mirror is READY than cancel operation is not discarding the whole result of the operation, but instead it's a documented way get a point-in-time snapshot of source disk. So, we should not cancel any requests if mirror is READ and force=false. Let's fix that case. Note, that bug that we have before this commit is not critical, as the only .bdrv_cancel_in_flight implementation is nbd_cancel_in_flight() and it cancels only requests waiting for reconnection, so it should be rare case. Fixes: 521ff8b779b11c394dbdc43f02e158dd99df308a Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Message-Id: <20210421075858.40197-1-vsementsov@virtuozzo.com> Signed-off-by: Max Reitz <mreitz@redhat.com>
Diffstat (limited to 'job.c')
| -rw-r--r-- | job.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/job.c b/job.c index 4aff13d95a..8775c1803b 100644 --- a/job.c +++ b/job.c @@ -716,7 +716,7 @@ static int job_finalize_single(Job *job) static void job_cancel_async(Job *job, bool force) { if (job->driver->cancel) { - job->driver->cancel(job); + job->driver->cancel(job, force); } if (job->user_paused) { /* Do not call job_enter here, the caller will handle it. */ |