blockdev: update outdated qmp_transaction() comments
Originally the transaction QMP command was just for taking snapshots. The command became more general when drive-backup and abort were added. It is more accurate to say the command is about performing operations on an atomic group than to say it is about snapshots. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Message-id: 1416566940-4430-2-git-send-email-stefanha@redhat.com Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
00e047926e
commit
b756b9ce8a
16
blockdev.c
16
blockdev.c
|
@ -1173,7 +1173,7 @@ out_aio_context:
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* New and old BlockDriverState structs for group snapshots */
|
/* New and old BlockDriverState structs for atomic group operations */
|
||||||
|
|
||||||
typedef struct BlkTransactionState BlkTransactionState;
|
typedef struct BlkTransactionState BlkTransactionState;
|
||||||
|
|
||||||
|
@ -1544,9 +1544,8 @@ static const BdrvActionOps actions[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 'Atomic' group snapshots. The snapshots are taken as a set, and if any fail
|
* 'Atomic' group operations. The operations are performed as a set, and if
|
||||||
* then we do not pivot any of the devices in the group, and abandon the
|
* any fail then we roll back all operations in the group.
|
||||||
* snapshots
|
|
||||||
*/
|
*/
|
||||||
void qmp_transaction(TransactionActionList *dev_list, Error **errp)
|
void qmp_transaction(TransactionActionList *dev_list, Error **errp)
|
||||||
{
|
{
|
||||||
|
@ -1557,10 +1556,10 @@ void qmp_transaction(TransactionActionList *dev_list, Error **errp)
|
||||||
QSIMPLEQ_HEAD(snap_bdrv_states, BlkTransactionState) snap_bdrv_states;
|
QSIMPLEQ_HEAD(snap_bdrv_states, BlkTransactionState) snap_bdrv_states;
|
||||||
QSIMPLEQ_INIT(&snap_bdrv_states);
|
QSIMPLEQ_INIT(&snap_bdrv_states);
|
||||||
|
|
||||||
/* drain all i/o before any snapshots */
|
/* drain all i/o before any operations */
|
||||||
bdrv_drain_all();
|
bdrv_drain_all();
|
||||||
|
|
||||||
/* We don't do anything in this loop that commits us to the snapshot */
|
/* We don't do anything in this loop that commits us to the operations */
|
||||||
while (NULL != dev_entry) {
|
while (NULL != dev_entry) {
|
||||||
TransactionAction *dev_info = NULL;
|
TransactionAction *dev_info = NULL;
|
||||||
const BdrvActionOps *ops;
|
const BdrvActionOps *ops;
|
||||||
|
@ -1595,10 +1594,7 @@ void qmp_transaction(TransactionActionList *dev_list, Error **errp)
|
||||||
goto exit;
|
goto exit;
|
||||||
|
|
||||||
delete_and_fail:
|
delete_and_fail:
|
||||||
/*
|
/* failure, and it is all-or-none; roll back all operations */
|
||||||
* failure, and it is all-or-none; abandon each new bs, and keep using
|
|
||||||
* the original bs for all images
|
|
||||||
*/
|
|
||||||
QSIMPLEQ_FOREACH(state, &snap_bdrv_states, entry) {
|
QSIMPLEQ_FOREACH(state, &snap_bdrv_states, entry) {
|
||||||
if (state->ops->abort) {
|
if (state->ops->abort) {
|
||||||
state->ops->abort(state);
|
state->ops->abort(state);
|
||||||
|
|
Loading…
Reference in New Issue