diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index c6ce09021d616c666b5b2d61d47c5d69ee21aa69..9b7b57847007d775f6888f0b7e79e4950c65d9af 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -7610,58 +7610,6 @@ qemuDomainAttachDeviceMknodHelper(pid_t pid ATTRIBUTE_UNUSED, } #endif - switch ((virDomainDeviceType) data->devDef->type) { - case VIR_DOMAIN_DEVICE_DISK: { - virDomainDiskDefPtr def = data->devDef->data.disk; - char *tmpsrc = def->src->path; - def->src->path = (char *) data->file; - if (virSecurityManagerSetDiskLabel(data->driver->securityManager, - data->vm->def, def) < 0) { - def->src->path = tmpsrc; - goto cleanup; - } - def->src->path = tmpsrc; - } break; - - case VIR_DOMAIN_DEVICE_HOSTDEV: { - virDomainHostdevDefPtr def = data->devDef->data.hostdev; - if (virSecurityManagerSetHostdevLabel(data->driver->securityManager, - data->vm->def, def, NULL) < 0) - goto cleanup; - } break; - - case VIR_DOMAIN_DEVICE_CHR: - case VIR_DOMAIN_DEVICE_RNG: - /* No labelling. */ - break; - - case VIR_DOMAIN_DEVICE_NONE: - case VIR_DOMAIN_DEVICE_LEASE: - case VIR_DOMAIN_DEVICE_FS: - case VIR_DOMAIN_DEVICE_NET: - case VIR_DOMAIN_DEVICE_INPUT: - case VIR_DOMAIN_DEVICE_SOUND: - case VIR_DOMAIN_DEVICE_VIDEO: - case VIR_DOMAIN_DEVICE_WATCHDOG: - case VIR_DOMAIN_DEVICE_CONTROLLER: - case VIR_DOMAIN_DEVICE_GRAPHICS: - case VIR_DOMAIN_DEVICE_HUB: - case VIR_DOMAIN_DEVICE_REDIRDEV: - case VIR_DOMAIN_DEVICE_SMARTCARD: - case VIR_DOMAIN_DEVICE_MEMBALLOON: - case VIR_DOMAIN_DEVICE_NVRAM: - case VIR_DOMAIN_DEVICE_SHMEM: - case VIR_DOMAIN_DEVICE_TPM: - case VIR_DOMAIN_DEVICE_PANIC: - case VIR_DOMAIN_DEVICE_MEMORY: - case VIR_DOMAIN_DEVICE_IOMMU: - case VIR_DOMAIN_DEVICE_LAST: - virReportError(VIR_ERR_INTERNAL_ERROR, - _("Unexpected device type %d"), - data->devDef->type); - goto cleanup; - } - ret = 0; cleanup: if (ret < 0 && delDevice) @@ -7752,67 +7700,11 @@ qemuDomainDetachDeviceUnlinkHelper(pid_t pid ATTRIBUTE_UNUSED, static int -qemuDomainDetachDeviceUnlink(virQEMUDriverPtr driver, +qemuDomainDetachDeviceUnlink(virQEMUDriverPtr driver ATTRIBUTE_UNUSED, virDomainObjPtr vm, - virDomainDeviceDefPtr dev, + virDomainDeviceDefPtr dev ATTRIBUTE_UNUSED, const char *file) { - /* Technically, this is not needed. Yet. But in the future - * security managers might do some reference counting over - * Set/Restore label and thus for every SetLabel() there - * should be corresponding RestoreLabel(). */ - switch ((virDomainDeviceType) dev->type) { - case VIR_DOMAIN_DEVICE_DISK: { - virDomainDiskDefPtr def = dev->data.disk; - char *tmpsrc = def->src->path; - def->src->path = (char *) file; - if (virSecurityManagerRestoreDiskLabel(driver->securityManager, - vm->def, def) < 0) { - def->src->path = tmpsrc; - return -1; - } - def->src->path = tmpsrc; - } break; - - case VIR_DOMAIN_DEVICE_HOSTDEV: { - virDomainHostdevDefPtr def = dev->data.hostdev; - if (virSecurityManagerRestoreHostdevLabel(driver->securityManager, - vm->def, def, NULL) < 0) - return -1; - } break; - - case VIR_DOMAIN_DEVICE_CHR: - case VIR_DOMAIN_DEVICE_RNG: - /* No labelling. */ - break; - - case VIR_DOMAIN_DEVICE_NONE: - case VIR_DOMAIN_DEVICE_LEASE: - case VIR_DOMAIN_DEVICE_FS: - case VIR_DOMAIN_DEVICE_NET: - case VIR_DOMAIN_DEVICE_INPUT: - case VIR_DOMAIN_DEVICE_SOUND: - case VIR_DOMAIN_DEVICE_VIDEO: - case VIR_DOMAIN_DEVICE_WATCHDOG: - case VIR_DOMAIN_DEVICE_CONTROLLER: - case VIR_DOMAIN_DEVICE_GRAPHICS: - case VIR_DOMAIN_DEVICE_HUB: - case VIR_DOMAIN_DEVICE_REDIRDEV: - case VIR_DOMAIN_DEVICE_SMARTCARD: - case VIR_DOMAIN_DEVICE_MEMBALLOON: - case VIR_DOMAIN_DEVICE_NVRAM: - case VIR_DOMAIN_DEVICE_SHMEM: - case VIR_DOMAIN_DEVICE_TPM: - case VIR_DOMAIN_DEVICE_PANIC: - case VIR_DOMAIN_DEVICE_MEMORY: - case VIR_DOMAIN_DEVICE_IOMMU: - case VIR_DOMAIN_DEVICE_LAST: - virReportError(VIR_ERR_INTERNAL_ERROR, - _("Unexpected device type %d"), - dev->type); - return -1; - } - if (virProcessRunInMountNamespace(vm->pid, qemuDomainDetachDeviceUnlinkHelper, (void *)file) < 0)