qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-block] [RFC v4 11/21] blockjobs: add block_job_dismiss


From: Kevin Wolf
Subject: Re: [Qemu-block] [RFC v4 11/21] blockjobs: add block_job_dismiss
Date: Wed, 28 Feb 2018 16:53:37 +0100
User-agent: Mutt/1.9.1 (2017-09-22)

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 <address@hidden>
> ---
>  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

[Prev in Thread] Current Thread [Next in Thread]