blockjob: move iostatus reset out of block_job_enter()
authorStefan Hajnoczi <stefanha@redhat.com>
Thu, 16 Jun 2016 16:56:22 +0000 (17:56 +0100)
committerStefan Hajnoczi <stefanha@redhat.com>
Mon, 20 Jun 2016 10:44:12 +0000 (11:44 +0100)
The QMP block-job-resume command and cancellation may want to reset the
job's iostatus.  The next patches add a user who does not want to reset
iostatus so move it up to block_job_enter() callers.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 1466096189-6477-2-git-send-email-stefanha@redhat.com

blockdev.c
blockjob.c

index c9a0068cd6bb344bc451aac1a9e6db4960a8cc05..72993126329ca61ec973a7e7e5832f3a887f4e25 100644 (file)
@@ -3811,6 +3811,7 @@ void qmp_block_job_resume(const char *device, Error **errp)
 
     job->user_paused = false;
     trace_qmp_block_job_resume(job);
+    block_job_iostatus_reset(job);
     block_job_resume(job);
     aio_context_release(aio_context);
 }
index 01b896b7e75626a8c185c8819edc4919af8d56e7..5137dce808318195eef8b20993537f0243a35f8d 100644 (file)
@@ -269,7 +269,6 @@ void block_job_resume(BlockJob *job)
 
 void block_job_enter(BlockJob *job)
 {
-    block_job_iostatus_reset(job);
     if (job->co && !job->busy) {
         qemu_coroutine_enter(job->co, NULL);
     }
@@ -278,6 +277,7 @@ void block_job_enter(BlockJob *job)
 void block_job_cancel(BlockJob *job)
 {
     job->cancelled = true;
+    block_job_iostatus_reset(job);
     block_job_enter(job);
 }