job: Move .complete callback to Job

This moves the .complete callback that tells a READY job to complete
from BlockJobDriver to JobDriver. The wrapper function job_complete()
doesn't require anything block job specific any more and can be moved
to Job.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
diff --git a/tests/test-blockjob.c b/tests/test-blockjob.c
index 592a136..e44c608 100644
--- a/tests/test-blockjob.c
+++ b/tests/test-blockjob.c
@@ -171,9 +171,9 @@
     block_job_completed(bjob, 0);
 }
 
-static void cancel_job_complete(BlockJob *job, Error **errp)
+static void cancel_job_complete(Job *job, Error **errp)
 {
-    CancelJob *s = container_of(job, CancelJob, common);
+    CancelJob *s = container_of(job, CancelJob, common.job);
     s->should_complete = true;
 }
 
@@ -204,8 +204,8 @@
         .user_resume   = block_job_user_resume,
         .drain         = block_job_drain,
         .start         = cancel_job_start,
+        .complete      = cancel_job_complete,
     },
-    .complete      = cancel_job_complete,
 };
 
 static CancelJob *create_common(BlockJob **pjob)
@@ -333,7 +333,7 @@
     block_job_enter(job);
     assert(job->job.status == JOB_STATUS_READY);
 
-    block_job_complete(job, &error_abort);
+    job_complete(&job->job, &error_abort);
     block_job_enter(job);
     while (!s->completed) {
         aio_poll(qemu_get_aio_context(), true);
@@ -357,7 +357,7 @@
     block_job_enter(job);
     assert(job->job.status == JOB_STATUS_READY);
 
-    block_job_complete(job, &error_abort);
+    job_complete(&job->job, &error_abort);
     block_job_enter(job);
     while (!s->completed) {
         aio_poll(qemu_get_aio_context(), true);