[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC v4 11/21] blockjobs: add block_job_dismiss
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [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
- [Qemu-devel] [RFC v4 21/21] blockjobs: add manual_mgmt option to transactions, (continued)
- [Qemu-devel] [RFC v4 18/21] blockjobs: add block-job-finalize, John Snow, 2018/02/23
- [Qemu-devel] [RFC v4 11/21] blockjobs: add block_job_dismiss, John Snow, 2018/02/23
- [Qemu-devel] [RFC v4 02/21] blockjobs: model single jobs as transactions, John Snow, 2018/02/23
- [Qemu-devel] [RFC v4 04/21] blockjobs: add status enum, John Snow, 2018/02/23
- Re: [Qemu-devel] [RFC v4 00/21] blockjobs: add explicit job management, no-reply, 2018/02/23
- Re: [Qemu-devel] [RFC v4 00/21] blockjobs: add explicit job management, no-reply, 2018/02/24