qemuDomainObjPrivatePtr priv = vm->privateData;
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
- if (!cfg->privileged)
+ if (!virQEMUDriverIsPrivileged(driver))
goto done;
if (!virCgroupAvailable())
if (virCgroupNewMachine(vm->def->name,
"qemu",
- cfg->privileged,
+ true,
vm->def->uuid,
NULL,
vm->pid,
qemuDomainObjPrivatePtr priv = vm->privateData;
int ret = -1;
- if (!cfg->privileged)
+ if (!virQEMUDriverIsPrivileged(driver))
goto done;
if (!virCgroupAvailable())
virDomainObjPtr vm)
{
qemuDomainObjPrivatePtr priv = vm->privateData;
- virQEMUDriverConfigPtr cfg;
if (priv->cgroup == NULL)
return 0; /* Not supported, so claim success */
- cfg = virQEMUDriverGetConfig(driver);
-
if (virCgroupTerminateMachine(vm->def->name,
"qemu",
- cfg->privileged) < 0) {
+ virQEMUDriverIsPrivileged(driver)) < 0) {
if (!virCgroupNewIgnoreError())
VIR_DEBUG("Failed to terminate cgroup for %s", vm->def->name);
}
- virObjectUnref(cfg);
-
return virCgroupRemove(priv->cgroup);
}
if (net->backend.tap) {
tunpath = net->backend.tap;
- if (!cfg->privileged) {
+ if (!(virQEMUDriverIsPrivileged(driver))) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("cannot use custom tap device in session mode"));
goto cleanup;
tap_create_flags |= VIR_NETDEV_TAP_CREATE_VNET_HDR;
}
- if (cfg->privileged) {
+ if (virQEMUDriverIsPrivileged(driver)) {
if (virNetDevTapCreateInBridgePort(brname, &net->ifname, &net->mac,
def->uuid, tunpath, tapfd, *tapfdSize,
virDomainNetGetActualVirtPortProfile(net),
/* network and bridge use a tap device, and direct uses a
* macvtap device
*/
- if (cfg->privileged && nicindexes && nnicindexes && net->ifname) {
+ if (virQEMUDriverIsPrivileged(driver) && nicindexes && nnicindexes &&
+ net->ifname) {
if (virNetDevGetIndex(net->ifname, &nicindex) < 0 ||
VIR_APPEND_ELEMENT(*nicindexes, *nnicindexes, nicindex) < 0)
goto cleanup;
emulator = def->emulator;
- if (!cfg->privileged) {
+ if (!virQEMUDriverIsPrivileged(driver)) {
/* If we have no cgroups then we can have no tunings that
* require them */
mgr = NULL;
}
- if (cfg->privileged) {
+ if (virQEMUDriverIsPrivileged(driver)) {
if (!(mgr = virSecurityManagerNewDAC(QEMU_DRIVER_NAME,
cfg->user,
cfg->group,
/* Don't have a dom0 so start from 1 */
qemu_driver->nextvmid = 1;
+ qemu_driver->privileged = privileged;
+
if (!(qemu_driver->domains = virDomainObjListNew()))
goto error;
hugepagePath);
goto error;
}
- if (cfg->privileged) {
+ if (privileged) {
if (virFileUpdatePerm(cfg->hugetlbfs[i].mnt_dir,
0, S_IXGRP | S_IXOTH) < 0)
goto error;
goto cleanup;
}
- if (cfg->privileged) {
+ if (virQEMUDriverIsPrivileged(qemu_driver)) {
if (STRNEQ(conn->uri->path, "/system") &&
STRNEQ(conn->uri->path, "/session")) {
virReportError(VIR_ERR_INTERNAL_ERROR,
virDomainObjPtr vm = NULL;
qemuDomainObjPrivatePtr priv;
virQEMUDriverPtr driver = dom->conn->privateData;
- virQEMUDriverConfigPtr cfg = NULL;
if (!(vm = qemuDomObjFromDomain(dom)))
goto cleanup;
if (virDomainGetSchedulerTypeEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
- cfg = virQEMUDriverGetConfig(driver);
- if (!cfg->privileged) {
+ if (!virQEMUDriverIsPrivileged(driver)) {
virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
_("CPU tuning is not available in session mode"));
goto cleanup;
cleanup:
virDomainObjEndAPI(&vm);
- virObjectUnref(cfg);
return ret;
}
if (virDomainSetBlkioParametersEnsureACL(dom->conn, vm->def, flags) < 0)
goto cleanup;
- if (!cfg->privileged) {
+ if (!virQEMUDriverIsPrivileged(driver)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Block I/O tuning is not available in session mode"));
goto cleanup;
int ret = -1;
virCapsPtr caps = NULL;
qemuDomainObjPrivatePtr priv;
- virQEMUDriverConfigPtr cfg = NULL;
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
VIR_DOMAIN_AFFECT_CONFIG |
if (virDomainGetBlkioParametersEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
- cfg = virQEMUDriverGetConfig(driver);
- if (!cfg->privileged) {
+ if (!virQEMUDriverIsPrivileged(driver)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Block I/O tuning is not available in session mode"));
goto cleanup;
cleanup:
virDomainObjEndAPI(&vm);
virObjectUnref(caps);
- virObjectUnref(cfg);
return ret;
}
if (virDomainSetMemoryParametersEnsureACL(dom->conn, vm->def, flags) < 0)
goto cleanup;
- if (!cfg->privileged) {
+ if (!virQEMUDriverIsPrivileged(driver)) {
virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
_("Memory tuning is not available in session mode"));
goto cleanup;
virDomainDefPtr persistentDef = NULL;
int ret = -1;
qemuDomainObjPrivatePtr priv;
- virQEMUDriverConfigPtr cfg = NULL;
unsigned long long swap_hard_limit, mem_hard_limit, mem_soft_limit;
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
if (virDomainGetMemoryParametersEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
- cfg = virQEMUDriverGetConfig(driver);
- if (!cfg->privileged) {
+ if (!virQEMUDriverIsPrivileged(driver)) {
virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
_("Memory tuning is not available in session mode"));
goto cleanup;
cleanup:
virDomainObjEndAPI(&vm);
- virObjectUnref(cfg);
return ret;
}
#undef QEMU_ASSIGN_MEM_PARAM
goto endjob;
if (def) {
- if (!cfg->privileged) {
+ if (!virQEMUDriverIsPrivileged(driver)) {
virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
_("NUMA tuning is not available in session mode"));
goto endjob;
if (virDomainSetSchedulerParametersFlagsEnsureACL(dom->conn, vm->def, flags) < 0)
goto cleanup;
- if (!cfg->privileged) {
+ if (!virQEMUDriverIsPrivileged(driver)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("CPU tuning is not available in session mode"));
goto cleanup;
virDomainDefPtr persistentDef;
virCapsPtr caps = NULL;
qemuDomainObjPrivatePtr priv;
- virQEMUDriverConfigPtr cfg = NULL;
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
VIR_DOMAIN_AFFECT_CONFIG |
if (virDomainGetSchedulerParametersFlagsEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
- cfg = virQEMUDriverGetConfig(driver);
- if (!cfg->privileged) {
+ if (!virQEMUDriverIsPrivileged(driver)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("CPU tuning is not available in session mode"));
goto cleanup;
cleanup:
virDomainObjEndAPI(&vm);
virObjectUnref(caps);
- virObjectUnref(cfg);
return ret;
}