*memPath = g_strdup_printf("%s/%s", domainPath, alias);
return 0;
}
+
+
+int
+qemuHugepageMakeBasedir(virQEMUDriver *driver,
+ virHugeTLBFS *hugepage)
+{
+
+ g_autofree char *hugepagePath = NULL;
+
+ hugepagePath = qemuGetBaseHugepagePath(driver, hugepage);
+
+ if (!hugepagePath)
+ return -1;
+
+ if (g_mkdir_with_parents(hugepagePath, 0777) < 0) {
+ virReportSystemError(errno,
+ _("unable to create hugepage path %s"),
+ hugepagePath);
+ return -1;
+ }
+
+ if (driver->privileged &&
+ virFileUpdatePerm(hugepage->mnt_dir, 0, S_IXGRP | S_IXOTH) < 0)
+ return -1;
+
+ return 0;
+}
const virDomainDef *def,
const char *alias,
char **memPath);
+
+int qemuHugepageMakeBasedir(virQEMUDriver *driver,
+ virHugeTLBFS *hugepage);
* it, since we can't assume the root mount point has permissions that
* will let our spawned QEMU instances use it. */
for (i = 0; i < cfg->nhugetlbfs; i++) {
- g_autofree char *hugepagePath = NULL;
-
- hugepagePath = qemuGetBaseHugepagePath(qemu_driver, &cfg->hugetlbfs[i]);
-
- if (!hugepagePath)
- goto error;
-
- if (g_mkdir_with_parents(hugepagePath, 0777) < 0) {
- virReportSystemError(errno,
- _("unable to create hugepage path %s"),
- hugepagePath);
- goto error;
- }
- if (privileged &&
- virFileUpdatePerm(cfg->hugetlbfs[i].mnt_dir,
- 0, S_IXGRP | S_IXOTH) < 0)
+ if (qemuHugepageMakeBasedir(qemu_driver, &cfg->hugetlbfs[i]) < 0)
goto error;
}