[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH for-5.0 v2 01/23] blockdev: Allow external snapshots everywhere
From: |
Max Reitz |
Subject: |
[PATCH for-5.0 v2 01/23] blockdev: Allow external snapshots everywhere |
Date: |
Mon, 11 Nov 2019 17:01:54 +0100 |
There is no good reason why we would allow external snapshots only on
the first non-filter node in a chain. Parent BDSs should not care
whether their child is replaced by a snapshot. (If they do care, they
should announce that via freezing the chain, which is checked in
bdrv_append() through bdrv_set_backing_hd().)
Before we had bdrv_is_first_non_filter() here (since 212a5a8f095), there
was a special function bdrv_check_ext_snapshot() that allowed snapshots
by default, but block drivers could override this. Only blkverify did
so, however.
It is not clear to me why blkverify would do so; maybe just so that the
testee block driver would not be replaced. The introducing commit
f6186f49e2c does not explain why. Maybe because 08b24cfe376 would have
been the correct solution? (Which adds a .supports_backing check.)
Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Vladimir Sementsov-Ogievskiy <address@hidden>
---
blockdev.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/blockdev.c b/blockdev.c
index 8e029e9c01..ab78230d23 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -1595,11 +1595,6 @@ static void external_snapshot_prepare(BlkActionState
*common,
}
}
- if (!bdrv_is_first_non_filter(state->old_bs)) {
- error_setg(errp, QERR_FEATURE_DISABLED, "snapshot");
- goto out;
- }
-
if (action->type == TRANSACTION_ACTION_KIND_BLOCKDEV_SNAPSHOT_SYNC) {
BlockdevSnapshotSync *s = action->u.blockdev_snapshot_sync.data;
const char *format = s->has_format ? s->format : "qcow2";
--
2.23.0
- [PATCH for-5.0 v2 00/23] block: Fix check_to_replace_node(), Max Reitz, 2019/11/11
- [PATCH for-5.0 v2 01/23] blockdev: Allow external snapshots everywhere,
Max Reitz <=
- [PATCH for-5.0 v2 02/23] blockdev: Allow resizing everywhere, Max Reitz, 2019/11/11
- [PATCH for-5.0 v2 03/23] block: Drop bdrv_is_first_non_filter(), Max Reitz, 2019/11/11
- [PATCH for-5.0 v2 04/23] iotests: Let 041 use -blockdev for quorum children, Max Reitz, 2019/11/11
- [PATCH for-5.0 v2 05/23] quorum: Fix child permissions, Max Reitz, 2019/11/11
- [PATCH for-5.0 v2 06/23] block: Add bdrv_recurse_can_replace(), Max Reitz, 2019/11/11
- [PATCH for-5.0 v2 07/23] blkverify: Implement .bdrv_recurse_can_replace(), Max Reitz, 2019/11/11