[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 07/11] blockjob: introduce block_job_cancel_asyn
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH 07/11] blockjob: introduce block_job_cancel_async, check iostatus invariants |
Date: |
Thu, 4 May 2017 11:53:39 +0100 |
User-agent: |
Mutt/1.8.0 (2017-02-23) |
On Wed, Apr 19, 2017 at 04:42:15PM +0200, Paolo Bonzini wrote:
> The new functions helps respecting the invariant that the coroutine
> is entered with false user_resume, zero pause count and no error
> recorded in the iostatus.
>
> Resetting the iostatus is now common to all of block_job_cancel_async,
> block_job_user_resume and block_job_iostatus_reset, albeit with slight
> differences:
>
> - block_job_cancel_async resets the iostatus, and resumes the job if
> there was an error, but the coroutine is not restarted immediately.
> For example the caller may continue with a call to block_job_finish_sync.
>
> - block_job_user_resume resets the iostatus. It wants to resume the job
> unconditionally, even if there was no error.
>
> - block_job_iostatus_reset doesn't resume the job at all. Maybe that's
> a bug but it should be fixed separately.
>
> block_job_iostatus_reset does the least common denominator, so add some
> checking but otherwise leave it as the entry point for resetting the
> iostatus.
>
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
> v1->v2: rewritten
>
> blockjob.c | 24 ++++++++++++++++++++----
> 1 file changed, 20 insertions(+), 4 deletions(-)
Reviewed-by: Stefan Hajnoczi <address@hidden>
signature.asc
Description: PGP signature
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH 07/11] blockjob: introduce block_job_cancel_async, check iostatus invariants,
Stefan Hajnoczi <=