[libvirt] [PATCH] qemu: domain: Don't call namespace setup for storage already accessed by vm

Michal Privoznik mprivozn at redhat.com
Wed Nov 22 16:32:40 UTC 2017


On 11/22/2017 04:49 PM, Peter Krempa wrote:
> When doing block commit we need to allow write for members of the
> backing chain so that we can commit the data into them.
> 
> qemuDomainDiskChainElementPrepare was used for this which since commit
> 786d8d91b4 calls qemuDomainNamespaceSetupDisk which has very adverse
> side-effects, namely it relabels the nodes to the same label it has in
> the main namespace. This was messing up permissions for the commit
> operation since its touching various parts of a single backing chain.
> 
> Since we are are actually not introducing new images at that point add a
> flag for qemuDomainDiskChainElementPrepare which will refrain from
> calling to the namespace setup function.
> 
> Calls from qemuDomainSnapshotCreateSingleDiskActive and
> qemuDomainBlockCopyCommon do introduce new members all calls from
> qemuDomainBlockCommit do not, so the calls are anotated accordingly.
> 
> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1506072
> ---
>  src/qemu/qemu_domain.c | 17 ++++++++++++++---
>  src/qemu/qemu_domain.h |  3 ++-
>  src/qemu/qemu_driver.c | 12 ++++++------
>  3 files changed, 22 insertions(+), 10 deletions(-)

Yup, I've tested this and it fixes the problem. ACK.

Michal




More information about the libvir-list mailing list