提交 b9df1d76 编写于 作者: W Wang Huaqiang 提交者: John Ferlan

util: Refactor code for determining allocation path

The code for determining resctrl allocation path could be reused
for monitor. Refactor it for reuse.
Signed-off-by: NWang Huaqiang <huaqiang.wang@intel.com>
Reviewed-by: NJohn Ferlan <jferlan@redhat.com>
上级 4a198ed4
...@@ -2266,28 +2266,50 @@ virResctrlAllocAssign(virResctrlInfoPtr resctrl, ...@@ -2266,28 +2266,50 @@ virResctrlAllocAssign(virResctrlInfoPtr resctrl,
} }
static char *
virResctrlDeterminePath(const char *parentpath,
const char *prefix,
const char *id)
{
char *path = NULL;
if (!id) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Resctrl ID must be set before determining resctrl "
"parentpath='%s' prefix='%s'"), parentpath, prefix);
return NULL;
}
if (virAsprintf(&path, "%s/%s-%s", parentpath, prefix, id) < 0)
return NULL;
return path;
}
int int
virResctrlAllocDeterminePath(virResctrlAllocPtr alloc, virResctrlAllocDeterminePath(virResctrlAllocPtr alloc,
const char *machinename) const char *machinename)
{ {
if (!alloc->id) { if (alloc->path) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", virReportError(VIR_ERR_INTERNAL_ERROR,
_("Resctrl Allocation ID must be set before creation")); _("Resctrl allocation path is already set to '%s'"),
alloc->path);
return -1; return -1;
} }
/* If the allocation is empty, then the path will be SYSFS_RESCTRL_PATH */ /* If the allocation is empty, then the path will be SYSFS_RESCTRL_PATH */
if (virResctrlAllocIsEmpty(alloc)) { if (virResctrlAllocIsEmpty(alloc)) {
if (!alloc->path && if (VIR_STRDUP(alloc->path, SYSFS_RESCTRL_PATH) < 0)
VIR_STRDUP(alloc->path, SYSFS_RESCTRL_PATH) < 0)
return -1; return -1;
return 0; return 0;
} }
if (!alloc->path && alloc->path = virResctrlDeterminePath(SYSFS_RESCTRL_PATH,
virAsprintf(&alloc->path, "%s/%s-%s", machinename, alloc->id);
SYSFS_RESCTRL_PATH, machinename, alloc->id) < 0)
if (!alloc->path)
return -1; return -1;
return 0; return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册