qemu-devel
[Top][All Lists]
Advanced

[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>

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]