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 <pbonz...@redhat.com> > --- > v1->v2: rewritten > > blockjob.c | 24 ++++++++++++++++++++---- > 1 file changed, 20 insertions(+), 4 deletions(-)
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
signature.asc
Description: PGP signature