On Fri, Aug 06, 2021 at 11:38:51AM +0200, Max Reitz wrote:
> When a transaction is aborted, no result matters, and so all jobs within
> should be force-cancelled.
>
> Signed-off-by: Max Reitz <mreitz@redhat.com>
> ---
> job.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
Reviewed-by: Eric Blake <eblake@redhat.com>
>
> diff --git a/job.c b/job.c
> index 3fe23bb77e..24e7c4fcb7 100644
> --- a/job.c
> +++ b/job.c
> @@ -766,7 +766,12 @@ static void job_completed_txn_abort(Job *job)
> if (other_job != job) {
> ctx = other_job->aio_context;
> aio_context_acquire(ctx);
> - job_cancel_async(other_job, false);
> + /*
> + * This is a transaction: If one job failed, no result will matter.
> + * Therefore, pass force=true to terminate all other jobs as quickly
> + * as possible.
> + */
> + job_cancel_async(other_job, true);
> aio_context_release(ctx);
> }
> }
> --
> 2.31.1
>
>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org