From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, Fam Zheng <famz@redhat.com>,
dietmar@proxmox.com, imain@redhat.com,
Stefan Hajnoczi <stefanha@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
xiawenc@linux.vnet.ibm.com
Subject: [Qemu-devel] [PATCH v6 08/12] blockdev: allow BdrvActionOps->commit() to be NULL
Date: Mon, 24 Jun 2013 17:13:16 +0200 [thread overview]
Message-ID: <1372086800-4720-9-git-send-email-stefanha@redhat.com> (raw)
In-Reply-To: <1372086800-4720-1-git-send-email-stefanha@redhat.com>
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 <eblake@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
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
next prev parent reply other threads:[~2013-06-24 15:14 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-24 15:13 [Qemu-devel] [PATCH v6 00/12] block: drive-backup live backup command Stefan Hajnoczi
2013-06-24 15:13 ` [Qemu-devel] [PATCH v6 01/12] notify: add NotiferWithReturn so notifier list can abort Stefan Hajnoczi
2013-06-24 15:13 ` [Qemu-devel] [PATCH v6 02/12] block: add bdrv_add_before_write_notifier() Stefan Hajnoczi
2013-06-24 15:13 ` [Qemu-devel] [PATCH v6 03/12] block: add basic backup support to block driver Stefan Hajnoczi
2013-06-25 13:00 ` Kevin Wolf
2013-06-24 15:13 ` [Qemu-devel] [PATCH v6 04/12] blockdev: drop redundant proto_drv check Stefan Hajnoczi
2013-06-24 15:13 ` [Qemu-devel] [PATCH v6 05/12] blockdev: use bdrv_getlength() in qmp_drive_mirror() Stefan Hajnoczi
2013-06-24 15:13 ` [Qemu-devel] [PATCH v6 06/12] block: add drive-backup QMP command Stefan Hajnoczi
2013-06-24 15:13 ` [Qemu-devel] [PATCH v6 07/12] blockdev: rename BlkTransactionStates to singular Stefan Hajnoczi
2013-06-24 15:13 ` Stefan Hajnoczi [this message]
2013-06-24 15:13 ` [Qemu-devel] [PATCH v6 09/12] blockdev: add DriveBackup transaction Stefan Hajnoczi
2013-06-24 15:13 ` [Qemu-devel] [PATCH v6 10/12] blockdev: add Abort transaction Stefan Hajnoczi
2013-06-24 15:13 ` [Qemu-devel] [PATCH v6 11/12] qemu-iotests: extract wait_until_completed() into iotests.py Stefan Hajnoczi
2013-06-24 15:13 ` [Qemu-devel] [PATCH v6 12/12] qemu-iotests: add 055 drive-backup test case Stefan Hajnoczi
2013-06-25 13:16 ` [Qemu-devel] [PATCH v6 00/12] block: drive-backup live backup command Kevin Wolf
2013-06-25 14:59 ` Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1372086800-4720-9-git-send-email-stefanha@redhat.com \
--to=stefanha@redhat.com \
--cc=dietmar@proxmox.com \
--cc=famz@redhat.com \
--cc=imain@redhat.com \
--cc=kwolf@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=xiawenc@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).