[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH 3/3] blockjob: fix transaction cancel
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[Qemu-block] [PATCH 3/3] blockjob: fix transaction cancel |
Date: |
Wed, 27 Jul 2016 13:49:50 +0300 |
Prevent a situation, when some jobs from transaction are already
finished and user tries to cancel a job from this transaction.
Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
---
blockdev.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/blockdev.c b/blockdev.c
index 59ae9e4..d1818c2 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -3772,6 +3772,17 @@ void qmp_block_job_cancel(const char *device,
goto out;
}
+ if (block_job_txn_all_success(job)) {
+ if (job->txn != NULL) {
+ error_setg(errp, "All block jobs in transaction for device '%s'
are"
+ "already successed", device);
+ } else {
+ error_setg(errp, "The block job for device '%s' is"
+ "already successed", device);
+ }
+ goto out;
+ }
+
trace_qmp_block_job_cancel(job);
block_job_cancel(job);
out:
--
1.8.3.1