)]}'
{
  "log": [
    {
      "commit": "858d72ead4864da0fb0b89b919524125ce998e27",
      "tree": "19ea321ca3b505efecb2053a829daf89a6a22529",
      "parents": [
        "846c7bb055747989891f5cd2bb6e8d56243ba1e7"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Thu Oct 18 23:39:45 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:37 2007 -0700"
      },
      "message": "cgroups: implement namespace tracking subsystem\n\nWhen a task enters a new namespace via a clone() or unshare(), a new cgroup\nis created and the task moves into it.\n\nThis version names cgroups which are automatically created using\ncgroup_clone() as \"node_\u003cpid\u003e\" where pid is the pid of the unsharing or\ncloned process.  (Thanks Pavel for the idea) This is safe because if the\nprocess unshares again, it will create\n\n\t/cgroups/(...)/node_\u003cpid\u003e/node_\u003cpid\u003e\n\nThe only possibilities (AFAICT) for a -EEXIST on unshare are\n\n\t1. pid wraparound\n\t2. a process fails an unshare, then tries again.\n\nCase 1 is unlikely enough that I ignore it (at least for now).  In case 2, the\nnode_\u003cpid\u003e will be empty and can be rmdir\u0027ed to make the subsequent unshare()\nsucceed.\n\nChangelog:\n\tName cloned cgroups as \"node_\u003cpid\u003e\".\n\n[clg@fr.ibm.com: fix order of cgroup subsystems in init/Kconfig]\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ]
}
