On 11.09.2015 20:52, Max Reitz wrote: > On 07.09.2015 09:34, Fam Zheng wrote: >> Sometimes block jobs must execute as a transaction group. Finishing >> jobs wait until all other jobs are ready to complete successfully. >> Failure or cancellation of one job cancels the other jobs in the group. >> >> Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> >> [Rewrite the implementation which is now contained in block_job_completed. >> --Fam] >> Signed-off-by: Fam Zheng <f...@redhat.com> >> --- >> blockjob.c | 134 >> ++++++++++++++++++++++++++++++++++++++++++++++- >> include/block/block.h | 1 + >> include/block/blockjob.h | 38 ++++++++++++++ >> 3 files changed, 171 insertions(+), 2 deletions(-) >>
[...] >> diff --git a/include/block/blockjob.h b/include/block/blockjob.h >> index f6e4c86..0a6c138 100644 >> --- a/include/block/blockjob.h >> +++ b/include/block/blockjob.h [...] >> @@ -395,4 +398,39 @@ void block_job_defer_to_main_loop(BlockJob *job, [...] >> + >> +/** >> + * block_job_txn_add_job: >> + * @txn: The transaction (may be NULL) >> + * @job: Job to add to the transaction >> + * >> + * Add @job to the transaction. The @job must not already be in a >> transaction. >> + * The block job driver must call block_job_txn_prepare_to_complete() before >> + * final cleanup and completion. To me that sounds a bit as if this should be called e.g. in block/backup.c:backup_complete(). Maybe add that this is called automatically by block_job_completed()? Either way: Reviewed-by: Max Reitz <mre...@redhat.com> >> + */ >> +void block_job_txn_add_job(BlockJobTxn *txn, BlockJob *job); >> + >> #endif
signature.asc
Description: OpenPGP digital signature