[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH for-6.2 v3 09/12] mirror: Check job_is_cancelled() earlier
From: |
Eric Blake |
Subject: |
Re: [PATCH for-6.2 v3 09/12] mirror: Check job_is_cancelled() earlier |
Date: |
Fri, 6 Aug 2021 15:36:49 -0500 |
User-agent: |
NeoMutt/20210205-687-0ed190 |
On Fri, Aug 06, 2021 at 11:38:56AM +0200, Max Reitz wrote:
> We must check whether the job is force-cancelled early in our main loop,
> most importantly before any `continue` statement. For example, we used
> to have `continue`s before our current checking location that are
> triggered by `mirror_flush()` failing. So, if `mirror_flush()` kept
> failing, force-cancelling the job would not terminate it.
>
> Jobs can be cancelled while they yield, and once they are
> (force-cancelled), they should not generate new I/O requests.
> Therefore, we should put the check after the last yield before
> mirror_iteration() is invoked.
>
> Buglink: https://gitlab.com/qemu-project/qemu/-/issues/462
> Signed-off-by: Max Reitz <mreitz@redhat.com>
> ---
> block/mirror.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
Reviewed-by: Eric Blake <eblake@redhat.com>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
- Re: [PATCH for-6.2 v3 04/12] job: Force-cancel jobs in a failed transaction, (continued)
- [PATCH for-6.2 v3 06/12] jobs: Give Job.force_cancel more meaning, Max Reitz, 2021/08/06
- [PATCH for-6.2 v3 05/12] job: @force parameter for job_cancel_sync{, _all}(), Max Reitz, 2021/08/06
- [PATCH for-6.2 v3 07/12] job: Add job_cancel_requested(), Max Reitz, 2021/08/06
- [PATCH for-6.2 v3 08/12] mirror: Use job_is_cancelled(), Max Reitz, 2021/08/06
- [PATCH for-6.2 v3 09/12] mirror: Check job_is_cancelled() earlier, Max Reitz, 2021/08/06
- Re: [PATCH for-6.2 v3 09/12] mirror: Check job_is_cancelled() earlier,
Eric Blake <=
- [PATCH for-6.2 v3 10/12] mirror: Stop active mirroring after force-cancel, Max Reitz, 2021/08/06
- [PATCH for-6.2 v3 11/12] mirror: Do not clear .cancelled, Max Reitz, 2021/08/06
- [PATCH for-6.2 v3 12/12] iotests: Add mirror-ready-cancel-error test, Max Reitz, 2021/08/06