]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
vircgroup: extract virCgroupV1HasEmptyTasks
authorPavel Hrdina <phrdina@redhat.com>
Fri, 17 Aug 2018 13:25:48 +0000 (15:25 +0200)
committerPavel Hrdina <phrdina@redhat.com>
Tue, 25 Sep 2018 11:40:22 +0000 (13:40 +0200)
Reviewed-by: Fabiano Fidêncio <fidencio@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
src/util/vircgroup.c
src/util/vircgroupbackend.h
src/util/vircgroupv1.c

index 418becf21b65584303578451f7804ee1502bfd73..fae794223506351d9dc3bad72412ff9f0e0ce16b 100644 (file)
@@ -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
index bff1f8938e375c7a3cfe7597d766b46ec4ff5cd3..3e0f6d01f49e295ef4178caf5edaa0e9f4956cca 100644 (file)
@@ -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;
index 8545d28ff140d9a05eaa22b3155b8628bbc0cf1d..341f51358e217021f1b298917d5dce928814ca09 100644 (file)
@@ -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,
 };