VIR_WARN("Failed to teardown cgroup for disk path %s",
NULLSTR(elem->path));
- if (qemuSecurityRestoreImageLabel(driver, vm, elem) < 0)
+ if (qemuSecurityRestoreImageLabel(driver, vm, elem, false) < 0)
VIR_WARN("Unable to restore security label on %s", NULLSTR(elem->path));
if (qemuDomainNamespaceTeardownDisk(vm, elem) < 0)
if (qemuSetupImageCgroup(vm, elem) < 0)
goto cleanup;
- if (qemuSecuritySetImageLabel(driver, vm, elem) < 0)
+ if (qemuSecuritySetImageLabel(driver, vm, elem, false) < 0)
goto cleanup;
ret = 0;
int
qemuSecuritySetImageLabel(virQEMUDriverPtr driver,
virDomainObjPtr vm,
- virStorageSourcePtr src)
+ virStorageSourcePtr src,
+ bool backingChain)
{
qemuDomainObjPrivatePtr priv = vm->privateData;
pid_t pid = -1;
int ret = -1;
+ virSecurityDomainImageLabelFlags labelFlags = 0;
+
+ if (backingChain)
+ labelFlags |= VIR_SECURITY_DOMAIN_IMAGE_LABEL_BACKING_CHAIN;
if (qemuDomainNamespaceEnabled(vm, QEMU_DOMAIN_NS_MOUNT))
pid = vm->pid;
goto cleanup;
if (virSecurityManagerSetImageLabel(driver->securityManager,
- vm->def, src, 0) < 0)
+ vm->def, src, labelFlags) < 0)
goto cleanup;
if (virSecurityManagerTransactionCommit(driver->securityManager,
int
qemuSecurityRestoreImageLabel(virQEMUDriverPtr driver,
virDomainObjPtr vm,
- virStorageSourcePtr src)
+ virStorageSourcePtr src,
+ bool backingChain)
{
qemuDomainObjPrivatePtr priv = vm->privateData;
pid_t pid = -1;
int ret = -1;
+ virSecurityDomainImageLabelFlags labelFlags = 0;
+
+ if (backingChain)
+ labelFlags |= VIR_SECURITY_DOMAIN_IMAGE_LABEL_BACKING_CHAIN;
if (qemuDomainNamespaceEnabled(vm, QEMU_DOMAIN_NS_MOUNT))
pid = vm->pid;
goto cleanup;
if (virSecurityManagerRestoreImageLabel(driver->securityManager,
- vm->def, src, 0) < 0)
+ vm->def, src, labelFlags) < 0)
goto cleanup;
if (virSecurityManagerTransactionCommit(driver->securityManager,
int qemuSecuritySetImageLabel(virQEMUDriverPtr driver,
virDomainObjPtr vm,
- virStorageSourcePtr src);
+ virStorageSourcePtr src,
+ bool backingChain);
int qemuSecurityRestoreImageLabel(virQEMUDriverPtr driver,
virDomainObjPtr vm,
- virStorageSourcePtr src);
+ virStorageSourcePtr src,
+ bool backingChain);
int qemuSecuritySetHostdevLabel(virQEMUDriverPtr driver,
virDomainObjPtr vm,