[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v6 08/12] blockdev: allow BdrvActionOps->commit() to
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PATCH v6 08/12] blockdev: allow BdrvActionOps->commit() to be NULL |
Date: |
Mon, 24 Jun 2013 17:13:16 +0200 |
Some QMP 'transaction' types don't need to do anything on .commit().
Make .commit() optional just like .abort().
The "drive-backup" action will take advantage of this, it only needs to
cancel the block job on .abort(). Other block job actions will probably
follow the same pattern, so allow .commit() to be NULL.
Suggested-by: Eric Blake <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
blockdev.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/blockdev.c b/blockdev.c
index a39cea4..8dc6f2e 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -789,7 +789,7 @@ typedef struct BdrvActionOps {
size_t instance_size;
/* Prepare the work, must NOT be NULL. */
void (*prepare)(BlkTransactionState *common, Error **errp);
- /* Commit the changes, must NOT be NULL. */
+ /* Commit the changes, can be NULL. */
void (*commit)(BlkTransactionState *common);
/* Abort the changes on fail, can be NULL. */
void (*abort)(BlkTransactionState *common);
@@ -969,7 +969,9 @@ void qmp_transaction(TransactionActionList *dev_list, Error
**errp)
}
QSIMPLEQ_FOREACH(state, &snap_bdrv_states, entry) {
- state->ops->commit(state);
+ if (state->ops->commit) {
+ state->ops->commit(state);
+ }
}
/* success */
--
1.8.1.4
- [Qemu-devel] [PATCH v6 00/12] block: drive-backup live backup command, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 01/12] notify: add NotiferWithReturn so notifier list can abort, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 09/12] blockdev: add DriveBackup transaction, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 08/12] blockdev: allow BdrvActionOps->commit() to be NULL,
Stefan Hajnoczi <=
- [Qemu-devel] [PATCH v6 03/12] block: add basic backup support to block driver, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 10/12] blockdev: add Abort transaction, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 11/12] qemu-iotests: extract wait_until_completed() into iotests.py, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 05/12] blockdev: use bdrv_getlength() in qmp_drive_mirror(), Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 02/12] block: add bdrv_add_before_write_notifier(), Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 04/12] blockdev: drop redundant proto_drv check, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 06/12] block: add drive-backup QMP command, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 07/12] blockdev: rename BlkTransactionStates to singular, Stefan Hajnoczi, 2013/06/24
- [Qemu-devel] [PATCH v6 12/12] qemu-iotests: add 055 drive-backup test case, Stefan Hajnoczi, 2013/06/24