qemu-devel
[Top][All Lists]
Advanced

[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: John Snow
Subject: Re: [Qemu-devel] [RFC v4 11/21] blockjobs: add block_job_dismiss
Date: Wed, 28 Feb 2018 15:35:42 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0


On 02/28/2018 10:53 AM, Kevin Wolf wrote:
> 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.
> 

Don't tell me what I want.

(Seriously though, what the heck is wrong with my script? When I go to
edit this commend message there *IS* a newline here. This has been
happening a bit lately and I haven't really had the chance to catch it
happening in action yet... sorry.)

>> 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()?
> 

Sure. We'll say yes.

>> +    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?
> 

Sure. We'll say yes again.

>> +    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]