Patchwork [02/30] block: after creating a live snapshot, make old image read-only

mail settings
Submitter Kevin Wolf
Date Sept. 28, 2012, 5:56 p.m.
Message ID <>
Download mbox | patch
Permalink /patch/187851/
State New
Headers show


Kevin Wolf - Sept. 28, 2012, 5:56 p.m.
From: Jeff Cody <>

Currently, after a live snapshot of a drive, the image that has
been 'demoted' to be below the new active layer remains r/w.
This patch reopens it read-only.

Note that we do not check for error on the reopen(), because we
will not abort the snapshots if the reopen fails.

This patch depends on the bdrv_reopen() series.

Signed-off-by: Jeff Cody <>
Signed-off-by: Kevin Wolf <>
 blockdev.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)


diff --git a/blockdev.c b/blockdev.c
index e5d450f..0267fa3 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -805,6 +805,11 @@  void qmp_transaction(BlockdevActionList *dev_list, Error **errp)
     QSIMPLEQ_FOREACH(states, &snap_bdrv_states, entry) {
         /* This removes our old bs from the bdrv_states, and adds the new bs */
         bdrv_append(states->new_bs, states->old_bs);
+        /* We don't need (or want) to use the transactional
+         * bdrv_reopen_multiple() across all the entries at once, because we
+         * don't want to abort all of them if one of them fails the reopen */
+        bdrv_reopen(states->new_bs, states->new_bs->open_flags & ~BDRV_O_RDWR,
+                    NULL);
     /* success */