bdrv_append must also copy open_flags to the top, because the snapshot has BDRV_O_NO_BACKING set. This causes interesting results if you later use drive-reopen (not upstream) to reopen the image, and lose the backing file in the process.
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> --- A last minute addition... block.c | 1 + 1 file changed, 1 insertion(+) diff --git a/block.c b/block.c index 1f4f476..9c7d896 100644 --- a/block.c +++ b/block.c @@ -934,6 +934,7 @@ void bdrv_append(BlockDriverState *bs_new, BlockDriverState *bs_top) tmp = *bs_new; /* there are some fields that need to stay on the top layer: */ + tmp.open_flags = bs_top->open_flags; /* dev info */ tmp.dev_ops = bs_top->dev_ops; -- 1.7.9.3