Skip to content

Add 'blockdev-snapshot' command

Alberto Garcia qemu-devel 7 versions – Applied

Status from this message: Thanks, applied to the block branch.

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v8 Latest5 patches 1 replyApplied
  2. v75 patches 7 repliesSuperseded
  3. v64 patches 8 repliesSuperseded
Earlier versions · 4
VersionPostedPatchesRepliesStatus
v54 patches3 repliesSuperseded
v44 patches9 repliesSuperseded
v34 patches13 repliesSuperseded
v22 patches6 repliesSuperseded

Changes in v8 from the cover letter

- Rebase on top of the current master
- Patch 4: state->new_bs->backing_hd is now state->new_bs->backing

Patches in v8 Applied

#Subject and filesSizeRepliesApplied
1/5block: check for existing device IDs in external_snapshot_prepare()blockdev.c+3 -20 replies
2/5block: rename BlockdevSnapshot to BlockdevSnapshotSyncblockdev.c qapi-schema.json qapi/block-core.json+6 -60 replies
3/5block: support passing 'backing': '' to 'blockdev-add'block.c+7 -00 replies
4/5block: add a 'blockdev-snapshot' QMP commandblockdev.c qapi-schema.json qapi/block-core.json +1 more+172 -610 replies
5/5block: add tests for the 'blockdev-snapshot' commandtests/qemu-iotests/085 tests/qemu-iotests/085.out+128 -80 replies

Reviews trailers per patch

All 5 patches have a Reviewed-by or Acked-by.

PatchMax ReitzJeff CodyEric BlakeKevin Wolf
1/5R-b R-b
2/5R-b R-b R-b R-b
3/5R-b R-b R-b R-b
4/5R-b
5/5R-b R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 4 reviewers.

Read the v8 thread

Cover letter [Qemu-devel] [PATCH v8 0/5] Add 'blockdev-snapshot' command

This series adds a new 'blockdev-snapshot' command, that is similar to 'blockdev-snapshot-sync' but takes references to two existing block devices.

This finally applies (and works) cleanly on master. Max's patch to allow creating BlockDriverState trees without a BlockBackend is now available as be4b67bc7d99da26b7878f7f45370f50a3bd4af5.

Regards,

Berto

v8:
- Rebase on top of the current master
- Patch 4: state->new_bs->backing_hd is now state->new_bs->backing

v7: https://lists.gnu.org/archive/html/qemu-block/2015-10/msg00273.html
- Rebase on top of the current master. qmp_marshal_input_blockdev_snapshot is renamed to qmp_marshal_blockdev_snapshot in order to make it build.
- New patch to use bdrv_lookup_bs() instead of bdrv_find_node() in external_snapshot_prepare(). This way, if the user attempts to use blockdev-snapshot-sync using an existing device ID in the snapshot-node-name parameter, the code will detect the error before the new image is created.

v6: https://lists.gnu.org/archive/html/qemu-block/2015-09/msg00575.html
- Update documentation and parameter names following Eric's
suggestions: 'device' -> 'node', 'snapshot' -> 'overlay'.
- Rebased on top of Max's "BlockBackend and media" v5

v5: https://lists.gnu.org/archive/html/qemu-block/2015-09/msg00483.html
- Don't delete the 'backing' option if it contains something different from an empty string.
- Rebase on top of the current master.

v4: https://lists.gnu.org/archive/html/qemu-block/2015-09/msg00372.html
- Implement the support for 'backing': '', drop 'ignore-backing', and update iotest 085 accordingly.
- Include sample 'blockdev-add' call in the 'blockdev-snapshot' documentation.
- Clarify that the snapshot must not have a backing file in the BlockdevSnapshot documentation.
- Update error message ("...node name already existing" -> "...exists").

v3: https://lists.gnu.org/archive/html/qemu-block/2015-09/msg00272.html
- Add 'ignore-backing' field to BlockdevOptionsGenericCOWFormat. This allows opening images but not their backing images.
- Check for op blockers in the snapshot node and make sure that it doesn't have any backing image.
- Remove extra check for the existence of the snapshot node:
bdrv_open() already does that.
- Extend iotest 085 to add tests for 'blockdev-snapshot'.
- Replace local_err with errp in some places where the former is unnecessary.
- Update command description.
- Add 'since' tag to the 'blockdev-snapshot' field in TransactionAction.

v2: https://lists.gnu.org/archive/html/qemu-block/2015-09/msg00094.html
- Add 'blockdev-snapshot' command instead of allowing passing options to 'blockdev-snapshot-sync'.
- Rename BlockdevSnapshot to BlockdevSnapshotSync

v1: https://lists.gnu.org/archive/html/qemu-block/2015-08/msg00236.html

Alberto Garcia (5):
block: check for existing device IDs in external_snapshot_prepare()
block: rename BlockdevSnapshot to BlockdevSnapshotSync
block: support passing 'backing': '' to 'blockdev-add'
block: add a 'blockdev-snapshot' QMP command
block: add tests for the 'blockdev-snapshot' command

 block.c                    |   7 ++
 blockdev.c                 | 166 ++++++++++++++++++++++++++++-----------------
 qapi-schema.json           |   4 +-
 qapi/block-core.json       |  34 +++++++++-
 qmp-commands.hx            |  38 +++++++++++
 tests/qemu-iotests/085     | 102 ++++++++++++++++++++++++++--
 tests/qemu-iotests/085.out |  34 +++++++++-
 7 files changed, 312 insertions(+), 73 deletions(-)
Signature · 1 line
2.6.1