[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 04/11] block: package rollback code in qmp_transacti
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PATCH 04/11] block: package rollback code in qmp_transaction() |
Date: |
Fri, 24 May 2013 16:32:20 +0200 |
From: Wenchao Xia <address@hidden>
Signed-off-by: Wenchao Xia <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
---
blockdev.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/blockdev.c b/blockdev.c
index 76f0532..2131e13 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -882,6 +882,13 @@ static void external_snapshot_commit(BlkTransactionStates
*states)
NULL);
}
+static void external_snapshot_abort(BlkTransactionStates *states)
+{
+ if (states->new_bs) {
+ bdrv_delete(states->new_bs);
+ }
+}
+
/*
* 'Atomic' group snapshots. The snapshots are taken as a set, and if any fail
* then we do not pivot any of the devices in the group, and abandon the
@@ -939,9 +946,7 @@ delete_and_fail:
* the original bs for all images
*/
QSIMPLEQ_FOREACH(states, &snap_bdrv_states, entry) {
- if (states->new_bs) {
- bdrv_delete(states->new_bs);
- }
+ external_snapshot_abort(states);
}
exit:
QSIMPLEQ_FOREACH_SAFE(states, &snap_bdrv_states, entry, next) {
--
1.8.1.4
- [Qemu-devel] [PATCH 02/11] block: move input parsing code in qmp_transaction(), (continued)
- [Qemu-devel] [PATCH 02/11] block: move input parsing code in qmp_transaction(), Stefan Hajnoczi, 2013/05/24
- [Qemu-devel] [PATCH 03/11] block: package committing code in qmp_transaction(), Stefan Hajnoczi, 2013/05/24
- [Qemu-devel] [PATCH 05/11] block: make all steps in qmp_transaction() as callback, Stefan Hajnoczi, 2013/05/24
- [Qemu-devel] [PATCH 06/11] blockdev: Rename BlockdevAction -> TransactionAction, Stefan Hajnoczi, 2013/05/24
- [Qemu-devel] [PATCH 07/11] qemu-io: Fix 'map' output, Stefan Hajnoczi, 2013/05/24
- [Qemu-devel] [PATCH 08/11] qcow2.py: Subcommand for changing header fields, Stefan Hajnoczi, 2013/05/24
- [Qemu-devel] [PATCH 10/11] coroutine: protect global pool with a mutex, Stefan Hajnoczi, 2013/05/24
- [Qemu-devel] [PATCH 09/11] qemu-iotests: Try creating huge qcow2 image, Stefan Hajnoczi, 2013/05/24
- [Qemu-devel] [PATCH 01/11] block: package preparation code in qmp_transaction(), Stefan Hajnoczi, 2013/05/24
- [Qemu-devel] [PATCH 11/11] coroutine: stop using AioContext in CoQueue, Stefan Hajnoczi, 2013/05/24
- [Qemu-devel] [PATCH 04/11] block: package rollback code in qmp_transaction(),
Stefan Hajnoczi <=