]> git.proxmox.com Git - mirror_qemu.git/commit - block.c
block: Fix open flags with BDRV_O_SNAPSHOT
authorKevin Wolf <kwolf@redhat.com>
Tue, 6 May 2014 10:11:42 +0000 (12:11 +0200)
committerStefan Hajnoczi <stefanha@redhat.com>
Fri, 9 May 2014 18:57:31 +0000 (20:57 +0200)
commitb1e6fc0817dca14a3581d7b0979a5885608981f2
tree392958b989076df7e09dee397a50b4d327ce9ebf
parent10f08a0a3435afea441db8d0981dbad49042c7cf
block: Fix open flags with BDRV_O_SNAPSHOT

The immediately visible effect of this patch is that it fixes committing
a temporary snapshot to its backing file. Previously, it would fail with
a "permission denied" error because bdrv_inherited_flags() forced the
backing file to be read-only, ignoring the r/w reopen of bdrv_commit().

The bigger problem this revealed is that the original open flags must
actually only be applied to the temporary snapshot, and the original
image file must be treated as a backing file of the temporary snapshot
and get the right flags for that.

Reported-by: Jan Kiszka <jan.kiszka@web.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
block.c
include/block/block.h
tests/qemu-iotests/051
tests/qemu-iotests/051.out