提交 c4047141 编写于 作者: P Pavel Hrdina

vircgroup: extract virCgroupV1HasEmptyTasks

Reviewed-by: NFabiano Fidêncio <fidencio@redhat.com>
Reviewed-by: NJán Tomko <jtomko@redhat.com>
Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
上级 064024e7
......@@ -3461,18 +3461,7 @@ virCgroupSupportsCpuBW(virCgroupPtr cgroup)
int
virCgroupHasEmptyTasks(virCgroupPtr cgroup, int controller)
{
int ret = -1;
VIR_AUTOFREE(char *) content = NULL;
if (!cgroup)
return -1;
ret = virCgroupGetValueStr(cgroup, controller, "tasks", &content);
if (ret == 0 && content[0] == '\0')
ret = 1;
return ret;
return cgroup->backend->hasEmptyTasks(cgroup, controller);
}
bool
......
......@@ -122,6 +122,10 @@ typedef int
pid_t pid,
unsigned int flags);
typedef int
(*virCgroupHasEmptyTasksCB)(virCgroupPtr cgroup,
int controller);
struct _virCgroupBackend {
virCgroupBackendType type;
......@@ -141,6 +145,7 @@ struct _virCgroupBackend {
virCgroupMakeGroupCB makeGroup;
virCgroupRemoveCB remove;
virCgroupAddTaskCB addTask;
virCgroupHasEmptyTasksCB hasEmptyTasks;
};
typedef struct _virCgroupBackend virCgroupBackend;
typedef virCgroupBackend *virCgroupBackendPtr;
......
......@@ -735,6 +735,25 @@ virCgroupV1AddTask(virCgroupPtr group,
}
static int
virCgroupV1HasEmptyTasks(virCgroupPtr cgroup,
int controller)
{
int ret = -1;
VIR_AUTOFREE(char *) content = NULL;
if (!cgroup)
return -1;
ret = virCgroupGetValueStr(cgroup, controller, "tasks", &content);
if (ret == 0 && content[0] == '\0')
ret = 1;
return ret;
}
virCgroupBackend virCgroupV1Backend = {
.type = VIR_CGROUP_BACKEND_TYPE_V1,
......@@ -753,6 +772,7 @@ virCgroupBackend virCgroupV1Backend = {
.makeGroup = virCgroupV1MakeGroup,
.remove = virCgroupV1Remove,
.addTask = virCgroupV1AddTask,
.hasEmptyTasks = virCgroupV1HasEmptyTasks,
};
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册