Am 24.02.2018 um 00:51 hat John Snow geschrieben:
> For jobs that have reached their CONCLUDED state, prior to having their
> last reference put down (meaning jobs that have completed successfully,
> unsuccessfully, or have been canceled), allow the user to dismiss the
> job's lingering status report via block-job-dismiss.
> 
> This gives management APIs the chance to conclusively determine if a job
> failed or succeeded, even if the event broadcast was missed.
> 
> Note that jobs do not yet linger in any such state, they are freed
> immediately upon reaching this previously-unnamed state. such a state is
> added immediately in the next commit.
> 
> Verbs:
> Dismiss: operates on CONCLUDED jobs only.

You want to insert an empty line here.

> Signed-off-by: John Snow <js...@redhat.com>
> ---
>  block/trace-events       |  1 +
>  blockdev.c               | 14 ++++++++++++++
>  blockjob.c               | 34 ++++++++++++++++++++++++++++++++--
>  include/block/blockjob.h |  9 +++++++++
>  qapi/block-core.json     | 24 +++++++++++++++++++++++-
>  5 files changed, 79 insertions(+), 3 deletions(-)

> @@ -841,6 +865,9 @@ void *block_job_create(const char *job_id, const 
> BlockJobDriver *driver,
>          block_job_txn_add_job(txn, job);
>      }
>  
> +    /* For the expanded job control STM, grab an extra
> +     * reference for finalize() to put down */

Do you mean dismiss()?

> +    block_job_ref(job);
>      return job;
>  }
>  
> @@ -859,6 +886,9 @@ void block_job_pause_all(void)
>  
>  void block_job_early_fail(BlockJob *job)
>  {
> +    /* One for creation, one for finalize() */

And here?

> +    assert(job->status == BLOCK_JOB_STATUS_CREATED);
> +    block_job_unref(job);
>      block_job_unref(job);
>  }

Kevin

Reply via email to