On 03/23/2017 01:39 PM, Paolo Bonzini wrote: > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
What was the bad design that required you to fix the previous test? :) > --- > blockjob.c | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > diff --git a/blockjob.c b/blockjob.c > index c9cb5b1..093962b 100644 > --- a/blockjob.c > +++ b/blockjob.c > @@ -373,6 +373,12 @@ static void block_job_completed_single(BlockJob *job) > block_job_unref(job); > } > > +static void block_job_cancel_async(BlockJob *job) > +{ > + job->cancelled = true; > + block_job_iostatus_reset(job); > +} > + > static void block_job_completed_txn_abort(BlockJob *job) > { > AioContext *ctx; > @@ -397,7 +403,7 @@ static void block_job_completed_txn_abort(BlockJob *job) > * them; this job, however, may or may not be cancelled, > depending > * on the caller, so leave it. */ > if (other_job != job) { > - other_job->cancelled = true; > + block_job_cancel_async(other_job); Adds an ioreset here, which I think is probably fine... > } > continue; > } > @@ -489,8 +495,7 @@ void block_job_user_resume(BlockJob *job) > void block_job_cancel(BlockJob *job) > { > if (block_job_started(job)) { > - job->cancelled = true; > - block_job_iostatus_reset(job); > + block_job_cancel_async(job); > block_job_enter(job); > } else { > block_job_completed(job, -ECANCELED); > Reviewed-by: John Snow <js...@redhat.com>