mirror of https://github.com/xemu-project/xemu.git
blockjobs: add commit, abort, clean helpers
The completed_single function is getting a little mucked up with checking to see which callbacks exist, so let's factor them out. Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
35d6b368f2
commit
43628d9336
35
blockjob.c
35
blockjob.c
|
@ -415,6 +415,29 @@ static void block_job_update_rc(BlockJob *job)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void block_job_commit(BlockJob *job)
|
||||||
|
{
|
||||||
|
assert(!job->ret);
|
||||||
|
if (job->driver->commit) {
|
||||||
|
job->driver->commit(job);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void block_job_abort(BlockJob *job)
|
||||||
|
{
|
||||||
|
assert(job->ret);
|
||||||
|
if (job->driver->abort) {
|
||||||
|
job->driver->abort(job);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void block_job_clean(BlockJob *job)
|
||||||
|
{
|
||||||
|
if (job->driver->clean) {
|
||||||
|
job->driver->clean(job);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void block_job_completed_single(BlockJob *job)
|
static void block_job_completed_single(BlockJob *job)
|
||||||
{
|
{
|
||||||
assert(job->completed);
|
assert(job->completed);
|
||||||
|
@ -423,17 +446,11 @@ static void block_job_completed_single(BlockJob *job)
|
||||||
block_job_update_rc(job);
|
block_job_update_rc(job);
|
||||||
|
|
||||||
if (!job->ret) {
|
if (!job->ret) {
|
||||||
if (job->driver->commit) {
|
block_job_commit(job);
|
||||||
job->driver->commit(job);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if (job->driver->abort) {
|
block_job_abort(job);
|
||||||
job->driver->abort(job);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (job->driver->clean) {
|
|
||||||
job->driver->clean(job);
|
|
||||||
}
|
}
|
||||||
|
block_job_clean(job);
|
||||||
|
|
||||||
if (job->cb) {
|
if (job->cb) {
|
||||||
job->cb(job->opaque, job->ret);
|
job->cb(job->opaque, job->ret);
|
||||||
|
|
Loading…
Reference in New Issue