diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 93a301973489e6691dc8cbb3e1f40ffca3c18cfe..6e5a7e2f89c95576fd1da6880898473f00500706 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -9399,33 +9399,15 @@ qemuDomainStorageSourceAccessAllow(virQEMUDriverPtr driver, bool readonly, bool newSource) { - bool was_readonly = elem->readonly; - virQEMUDriverConfigPtr cfg = NULL; - int ret = -1; - - cfg = virQEMUDriverGetConfig(driver); - - elem->readonly = readonly; - - if (virDomainLockImageAttach(driver->lockManager, cfg->uri, vm, elem) < 0) - goto cleanup; - - if (newSource && - qemuDomainNamespaceSetupDisk(vm, elem) < 0) - goto cleanup; - - if (qemuSetupImageCgroup(vm, elem) < 0) - goto cleanup; + qemuDomainStorageSourceAccessFlags flags = QEMU_DOMAIN_STORAGE_SOURCE_ACCESS_SKIP_REVOKE; - if (qemuSecuritySetImageLabel(driver, vm, elem, false) < 0) - goto cleanup; + if (readonly) + flags &= QEMU_DOMAIN_STORAGE_SOURCE_ACCESS_READ_ONLY; - ret = 0; + if (!newSource) + flags &= QEMU_DOMAIN_STORAGE_SOURCE_ACCESS_MODIFY_ACCESS; - cleanup: - elem->readonly = was_readonly; - virObjectUnref(cfg); - return ret; + return qemuDomainStorageSourceAccessModify(driver, vm, elem, flags); }