On 18.09.2015 13:09, Max Reitz wrote: > 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>
Oops, wrong version. And I didn't even read the comment again, which would have showed that to me. Please-ignore: Max Reitz <mre...@redhat.com> >>> + */ >>> +void block_job_txn_add_job(BlockJobTxn *txn, BlockJob *job); >>> + >>> #endif >
signature.asc
Description: OpenPGP digital signature