[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v5 13/21] blockjobs: add commit, abort, clean helper
From: |
John Snow |
Subject: |
[Qemu-devel] [PATCH v5 13/21] blockjobs: add commit, abort, clean helpers |
Date: |
Sat, 10 Mar 2018 03:27:38 -0500 |
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 <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
---
blockjob.c | 35 ++++++++++++++++++++++++++---------
1 file changed, 26 insertions(+), 9 deletions(-)
diff --git a/blockjob.c b/blockjob.c
index 61af628376..0c64fadc6d 100644
--- a/blockjob.c
+++ b/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)
{
assert(job->completed);
@@ -423,17 +446,11 @@ static void block_job_completed_single(BlockJob *job)
block_job_update_rc(job);
if (!job->ret) {
- if (job->driver->commit) {
- job->driver->commit(job);
- }
+ block_job_commit(job);
} else {
- if (job->driver->abort) {
- job->driver->abort(job);
- }
- }
- if (job->driver->clean) {
- job->driver->clean(job);
+ block_job_abort(job);
}
+ block_job_clean(job);
if (job->cb) {
job->cb(job->opaque, job->ret);
--
2.14.3
- [Qemu-devel] [PATCH v5 00/21] blockjobs: add explicit job management, John Snow, 2018/03/10
- [Qemu-devel] [PATCH v5 14/21] blockjobs: add block_job_txn_apply function, John Snow, 2018/03/10
- [Qemu-devel] [PATCH v5 03/21] Blockjobs: documentation touchup, John Snow, 2018/03/10
- [Qemu-devel] [PATCH v5 06/21] iotests: add pause_wait, John Snow, 2018/03/10
- [Qemu-devel] [PATCH v5 12/21] blockjobs: ensure abort is called for cancelled jobs, John Snow, 2018/03/10
- [Qemu-devel] [PATCH v5 18/21] blockjobs: add block-job-finalize, John Snow, 2018/03/10
- [Qemu-devel] [PATCH v5 07/21] blockjobs: add block_job_verb permission table, John Snow, 2018/03/10
- [Qemu-devel] [PATCH v5 08/21] blockjobs: add ABORTING state, John Snow, 2018/03/10
- [Qemu-devel] [PATCH v5 01/21] blockjobs: fix set-speed kick, John Snow, 2018/03/10
- [Qemu-devel] [PATCH v5 13/21] blockjobs: add commit, abort, clean helpers,
John Snow <=
- [Qemu-devel] [PATCH v5 09/21] blockjobs: add CONCLUDED state, John Snow, 2018/03/10
- [Qemu-devel] [PATCH v5 02/21] blockjobs: model single jobs as transactions, John Snow, 2018/03/10
- [Qemu-devel] [PATCH v5 15/21] blockjobs: add prepare callback, John Snow, 2018/03/10
- [Qemu-devel] [PATCH v5 16/21] blockjobs: add waiting status, John Snow, 2018/03/10
- [Qemu-devel] [PATCH v5 05/21] blockjobs: add state transition table, John Snow, 2018/03/10
- [Qemu-devel] [PATCH v5 20/21] iotests: test manual job dismissal, John Snow, 2018/03/10
- [Qemu-devel] [PATCH v5 21/21] tests/test-blockjob: test cancellations, John Snow, 2018/03/10
- [Qemu-devel] [PATCH v5 04/21] blockjobs: add status enum, John Snow, 2018/03/10
- [Qemu-devel] [PATCH v5 10/21] blockjobs: add NULL state, John Snow, 2018/03/10