[lxc-devel] [PATCH] lxc_cgroup_append_task_2of3() helper_2of2

"Axel Schöner" axel.schoener at gmx.de
Thu Oct 6 13:00:04 UTC 2011


diff --git a/src/lxc/namespace.h b/src/lxc/namespace.h
index 9c6b7ec..cda6c50 100644
--- a/src/lxc/namespace.h
+++ b/src/lxc/namespace.h
@@ -49,6 +49,7 @@
 #endif
 
 extern pid_t lxc_clone(int (*fn)(void *), void *arg, int flags);
-extern int lxc_attach(pid_t pid);
+extern int lxc_attach(pid_t pid, const char* cgname);
+extern int lxc_cgroup_append_task(const char *name, pid_t pid);
 
 #endif
diff --git a/src/lxc/namespace.c b/src/lxc/namespace.c
index aca29d4..86d1e53 100644
--- a/src/lxc/namespace.c
+++ b/src/lxc/namespace.c
@@ -82,7 +82,7 @@ pid_t lxc_clone(int (*fn)(void *), void *arg, int flags)
        return ret;
 }
 
-int lxc_attach(pid_t pid)
+int lxc_attach(pid_t pid, const char* cgname)
 {
        char path[MAXPATHLEN];
        char *ns[] = { "pid", "mnt", "net", "ipc", "uts" };
@@ -104,6 +104,13 @@ int lxc_attach(pid_t pid)
                        return -1;
                }
        }
+       pid_t cpid = getpid();
+
+       /* Let's add the pid to the 'tasks' file */
+       if (lxc_cgroup_append_task(cgname, cpid)) {
+               SYSERROR("failed to attach pid '%d' to '%s'", cpid, cgname);
+               return -1;
+       }
 
        for (i = 0; i < size; i++) {
                if (setns(fd[i], 0)) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch_2of3_lxc_cgroup_append_task_helper_namespace
Type: application/octet-stream
Size: 1114 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20111006/c2b88d40/attachment.obj>


More information about the lxc-devel mailing list