[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v5 08/11] blockdev: allow BdrvActionOps->commit() to
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PATCH v5 08/11] blockdev: allow BdrvActionOps->commit() to be NULL |
Date: |
Thu, 30 May 2013 14:34:56 +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>
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 94ad829..0e649df 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 v5 00/11] block: drive-backup live backup command, Stefan Hajnoczi, 2013/05/30
- [Qemu-devel] [PATCH v5 08/11] blockdev: allow BdrvActionOps->commit() to be NULL,
Stefan Hajnoczi <=
- [Qemu-devel] [PATCH v5 09/11] blockdev: add DriveBackup transaction, Stefan Hajnoczi, 2013/05/30
- [Qemu-devel] [PATCH v5 10/11] blockdev: add Abort transaction, Stefan Hajnoczi, 2013/05/30
- [Qemu-devel] [PATCH v5 04/11] blockdev: drop redundant proto_drv check, Stefan Hajnoczi, 2013/05/30
- [Qemu-devel] [PATCH v5 07/11] blockdev: rename BlkTransactionStates to singular, Stefan Hajnoczi, 2013/05/30
- [Qemu-devel] [PATCH v5 05/11] blockdev: use bdrv_getlength() in qmp_drive_mirror(), Stefan Hajnoczi, 2013/05/30
- [Qemu-devel] [PATCH v5 02/11] block: add bdrv_add_before_write_notifier(), Stefan Hajnoczi, 2013/05/30