)]}'
{
  "log": [
    {
      "commit": "67e055d144c5b2acdc1c63811fde031263bf92c5",
      "tree": "6bdb0af25cc30d7bc8a8d54db3625f8486c2f5f9",
      "parents": [
        "1cf6e7d83bf334cc5916137862c920a97aabc018"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Feb 18 14:48:20 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:54 2009 -0800"
      },
      "message": "cgroups: fix possible use after free\n\nIn cgroup_kill_sb(), root is freed before sb is detached from the list, so\nanother sget() may find this sb and call cgroup_test_super(), which will\naccess the root that has been freed.\n\nReported-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cfebe563bd0a3ff97e1bc167123120d59c7a84db",
      "tree": "6178bf45bcccaf3d43d87cfe0eef059d849c7140",
      "parents": [
        "01c4a4283137d24c9cc3785f1f312e895a18f273"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Feb 11 13:04:36 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 11 14:25:36 2009 -0800"
      },
      "message": "cgroups: fix lockdep subclasses overflow\n\nI enabled all cgroup subsystems when compiling kernel, and then:\n # mount -t cgroup -o net_cls xxx /mnt\n # mkdir /mnt/0\n\nThis showed up immediately:\n BUG: MAX_LOCKDEP_SUBCLASSES too low!\n turning off the locking correctness validator.\n\nIt\u0027s caused by the cgroup hierarchy lock:\n\tfor (i \u003d 0; i \u003c CGROUP_SUBSYS_COUNT; i++) {\n\t\tstruct cgroup_subsys *ss \u003d subsys[i];\n\t\tif (ss-\u003eroot \u003d\u003d root)\n\t\t\tmutex_lock_nested(\u0026ss-\u003ehierarchy_mutex, i);\n\t}\n\nNow we have 9 cgroup subsystems, and the above \u0027i\u0027 for net_cls is 8, but\nMAX_LOCKDEP_SUBCLASSES is 8.\n\nThis patch uses different lockdep keys for different subsystems.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "839ec5452ebfd5905b9c69b20ceb640903a8ea1a",
      "tree": "42e371a4230c50c3cb34c92e80f5fa199b01dd2b",
      "parents": [
        "804b3c28a4e4fa1c224571bf76edb534b9c4b1ed"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Jan 29 14:25:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 29 18:04:45 2009 -0800"
      },
      "message": "cgroup: fix root_count when mount fails due to busy subsystem\n\nroot_count was being incremented in cgroup_get_sb() after all error\nchecking was complete, but decremented in cgroup_kill_sb(), which can be\ncalled on a superblock that we gave up on due to an error.  This patch\nchanges cgroup_kill_sb() to only decrement root_count if the root was\npreviously linked into the list of roots.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nTested-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "804b3c28a4e4fa1c224571bf76edb534b9c4b1ed",
      "tree": "59e0dabb227a5067cfdc7cce13f149f141ef8cb4",
      "parents": [
        "1404f06565ee89e0ce04d4a5859c00b0e3a0dc8d"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Jan 29 14:25:21 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 29 18:04:45 2009 -0800"
      },
      "message": "cgroups: add cpu_relax() calls in css_tryget() and cgroup_clear_css_refs()\n\ncss_tryget() and cgroup_clear_css_refs() contain polling loops; these\nloops should have cpu_relax calls in them to reduce cross-cache traffic.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1404f06565ee89e0ce04d4a5859c00b0e3a0dc8d",
      "tree": "e2f294ed420461e0032e03143f06634b883dc06e",
      "parents": [
        "945048ca36173315afa2f0c53bed21ba01a588c1"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Jan 29 14:25:21 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 29 18:04:45 2009 -0800"
      },
      "message": "cgroups: fix lock inconsistency in cgroup_clone()\n\nI fixed a bug in cgroup_clone() in Linus\u0027 tree in commit 7b574b7\n(\"cgroups: fix a race between cgroup_clone and umount\") without noticing\nthere was a cleanup patch in -mm tree that should be rebased (now commit\n104cbd5, \"cgroups: use task_lock() for access tsk-\u003ecgroups safe in\ncgroup_clone()\"), thus resulted in lock inconsistency.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "baef99a08a2e23d9386b47e53fa5f0d44fc98f66",
      "tree": "0171abae8bd05710c83444b8a236fc6ffbcac71c",
      "parents": [
        "9e9e3cbc62da43c66e894d5a61fa08b427e25202"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Jan 29 14:25:10 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 29 18:04:43 2009 -0800"
      },
      "message": "cgroups: use hierarchy mutex in creation failure path\n\nNow, cgrp-\u003esibling is handled under hierarchy mutex.\nerror route should do so, too.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e7c5ec9193d32b9559a3bb8893ceedbda85201ff",
      "tree": "fd7505c03e2c7525a110a702907c0604c233e2d9",
      "parents": [
        "2cb378c862777d050c20db903b119a029845fdcb"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Wed Jan 07 18:08:38 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:10 2009 -0800"
      },
      "message": "cgroups: add css_tryget()\n\nAdd css_tryget(), that obtains a counted reference on a CSS.  It is used\nin situations where the caller has a \"weak\" reference to the CSS, i.e.\none that does not protect the cgroup from removal via a reference count,\nbut would instead be cleaned up by a destroy() callback.\n\ncss_tryget() will return true on success, or false if the cgroup is being\nremoved.\n\nThis is similar to Kamezawa Hiroyuki\u0027s patch from a week or two ago, but\nwith the difference that in the event of css_tryget() racing with a\ncgroup_rmdir(), css_tryget() will only return false if the cgroup really\ndoes get removed.\n\nThis implementation is done by biasing css-\u003erefcnt, so that a refcnt of 1\nmeans \"releasable\" and 0 means \"released or releasing\".  In the event of a\nrace, css_tryget() distinguishes between \"released\" and \"releasing\" by\nchecking for the CSS_REMOVED flag in css-\u003eflags.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nTested-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "999cd8a450f8f93701669a61cac4d3b19eca07e8",
      "tree": "990e5b08e6db971d2e9943f89abf39e7c8f4cb1e",
      "parents": [
        "b5a84319a4343a0db753436fd8147e61eaafa7ea"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Wed Jan 07 18:08:36 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:10 2009 -0800"
      },
      "message": "cgroups: add a per-subsystem hierarchy_mutex\n\nThese patches introduce new locking/refcount support for cgroups to\nreduce the need for subsystems to call cgroup_lock(). This will\nultimately allow the atomicity of cgroup_rmdir() (which was removed\nrecently) to be restored.\n\nThese three patches give:\n\n1/3 - introduce a per-subsystem hierarchy_mutex which a subsystem can\n     use to prevent changes to its own cgroup tree\n\n2/3 - use hierarchy_mutex in place of calling cgroup_lock() in the\n     memory controller\n\n3/3 - introduce a css_tryget() function similar to the one recently\n      proposed by Kamezawa, but avoiding spurious refcount failures in\n      the event of a race between a css_tryget() and an unsuccessful\n      cgroup_rmdir()\n\nFuture patches will likely involve:\n\n- using hierarchy mutex in place of cgroup_lock() in more subsystems\n where appropriate\n\n- restoring the atomicity of cgroup_rmdir() with respect to cgroup_create()\n\nThis patch:\n\nAdd a hierarchy_mutex to the cgroup_subsys object that protects changes to\nthe hierarchy observed by that subsystem.  It is taken by the cgroup\nsubsystem (in addition to cgroup_mutex) for the following operations:\n\n- linking a cgroup into that subsystem\u0027s cgroup tree\n- unlinking a cgroup from that subsystem\u0027s cgroup tree\n- moving the subsystem to/from a hierarchy (including across the\n  bind() callback)\n\nThus if the subsystem holds its own hierarchy_mutex, it can safely\ntraverse its own hierarchy.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nTested-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a47295e6bc42ad35f9c15ac66f598aa24debd4e2",
      "tree": "cb765e996ef35ae88e29d60796655d0d35e8cf5e",
      "parents": [
        "e7b80bb695a5b64c92e314838e083b2f3bdf29b2"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Wed Jan 07 18:07:44 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:03 2009 -0800"
      },
      "message": "cgroups: make cgroup_path() RCU-safe\n\nFix races between /proc/sched_debug by freeing cgroup objects via an RCU\ncallback.  Thus any cgroup reference obtained from an RCU-safe source will\nremain valid during the RCU section.  Since dentries are also RCU-safe,\nthis allows us to traverse up the tree safely.\n\nAdditionally, make cgroup_path() check for a NULL cgrp-\u003edentry to avoid\ntrying to report a path for a partially-created cgroup.\n\n[lizf@cn.fujitsu.com: call deactive_super() in cgroup_diput()]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nTested-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e7b80bb695a5b64c92e314838e083b2f3bdf29b2",
      "tree": "f5eafb9825a23550dbf903e5cabd71655e4e55ce",
      "parents": [
        "c12f65d4396e05c51ce3af7f159ead98574a587c"
      ],
      "author": {
        "name": "Gowrishankar M",
        "email": "gowrishankar.m@in.ibm.com",
        "time": "Wed Jan 07 18:07:43 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:03 2009 -0800"
      },
      "message": "cgroups: skip processes from other namespaces when listing a cgroup\n\nOnce tasks are populated from system namespace inside cgroup, container\nreplaces other namespace task with 0 while listing tasks, inside\ncontainer.\n\nThough this is expected behaviour from container end, there is no use of\nshowing unwanted 0s.\n\nIn this patch, we check if a process is in same namespace before loading\ninto pid array.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Gowrishankar M \u003cgowrishankar.m@in.ibm.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c12f65d4396e05c51ce3af7f159ead98574a587c",
      "tree": "95e4f2e4878101ca2b9e3efc0a9cc5f25ce678d7",
      "parents": [
        "33a68ac1c1b695216e873ee12e819adbe73e4d9f"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:42 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:03 2009 -0800"
      },
      "message": "cgroups: introduce link_css_set() to remove duplicate code\n\nAdd a common function link_css_set() to link a css_set to a cgroup.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33a68ac1c1b695216e873ee12e819adbe73e4d9f",
      "tree": "0c58e50e7c528200390f740265f7eb7e7a3a87e6",
      "parents": [
        "e5f6a8609bab0c2d7543ab1505105e011832afd7"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:42 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:03 2009 -0800"
      },
      "message": "cgroups: add inactive subsystems to rootnode.subsys_list\n\nThough for an inactive hierarchy, we have subsys-\u003eroot \u003d\u003d \u0026rootnode, but\nrootnode\u0027s subsys_list is always empty.\n\nThis conflicts with the code in find_css_set():\n\n\tfor (i \u003d 0; i \u003c CGROUP_SUBSYS_COUNT; i++) {\n\t\t...\n\t\tif (ss-\u003eroot-\u003esubsys_list.next \u003d\u003d \u0026ss-\u003esibling) {\n\t\t\t...\n\t\t}\n\t}\n\tif (list_empty(\u0026rootnode.subsys_list)) {\n\t\t...\n\t}\n\nThe above code assumes rootnode.subsys_list links all inactive\nhierarchies.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e5f6a8609bab0c2d7543ab1505105e011832afd7",
      "tree": "07591b1fb27431cee41ea4ca097b514a0e773ba7",
      "parents": [
        "7534432dcc3c654a8671b6b0cdffd1dbdbc73074"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:41 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:03 2009 -0800"
      },
      "message": "cgroups: make root_list contains active hierarchies only\n\nDon\u0027t link rootnode to the root list, so root_list contains active\nhierarchies only as the comment indicates.  And rename for_each_root() to\nfor_each_active_root().\n\nAlso remove redundant check in cgroup_kill_sb().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7534432dcc3c654a8671b6b0cdffd1dbdbc73074",
      "tree": "65a5010c8bc5062d004fd1ede32e8f7ba64f6eec",
      "parents": [
        "77efecd9e0526327548152df715ab8644ecb5ba0"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:40 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:03 2009 -0800"
      },
      "message": "cgroups: remove rcu_read_lock() in cgroupstats_build()\n\ncgroup_iter_* do not need rcu_read_lock().\n\nIn cgroup_enable_task_cg_lists(), do_each_thread() and while_each_thread()\nare protected by RCU, it\u0027s OK, for write_lock(\u0026css_set_lock) implies\nrcu_read_lock() in non-RT kernel.\n\nIf we need explicit rcu_read_lock(), we should add rcu_read_lock() in\ncgroup_enable_task_cg_lists(), not cgroup_iter_*.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "77efecd9e0526327548152df715ab8644ecb5ba0",
      "tree": "4dd2a82fe5db454fb018e434e07c3e6f30dc9832",
      "parents": [
        "104cbd55377029e70fc2cee01089e84b9c36e5dc"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:02 2009 -0800"
      },
      "message": "cgroups: call find_css_set() safely in cgroup_attach_task()\n\nIn cgroup_attach_task(), tsk maybe exit when we call find_css_set().  and\nfind_css_set() will access to invalid css_set.\n\nThis patch increases the count before get_css_set(), and decreases it\nafter find_css_set().\n\nNOTE:\n\ncss_set\u0027s refcount is also taskcount, after this patch applied, taskcount\nmay be off-by-one WHEN cgroup_lock() is not held.  but I reviewed other\ncode which use taskcount, they are still correct.  No regression found by\nreviewing and simply testing.\n\nSo I do not use two counters in css_set.  (one counter for taskcount, the\nother for refcount.  like struct mm_struct) If this fix cause regression,\nwe will use two counters in css_set.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "104cbd55377029e70fc2cee01089e84b9c36e5dc",
      "tree": "60c7d0d9625b74f6a2733a9618cc97dc772848f5",
      "parents": [
        "b2aa30f7bb381e04c93eed106089ba55553955f1"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:38 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:02 2009 -0800"
      },
      "message": "cgroups: use task_lock() for access tsk-\u003ecgroups safe in cgroup_clone()\n\nUse task_lock() protect tsk-\u003ecgroups and get_css_set(tsk-\u003ecgroups).\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b2aa30f7bb381e04c93eed106089ba55553955f1",
      "tree": "eda632102a0bc6e325a24e77a9c2819eab5aeef3",
      "parents": [
        "2019f634ce5904c19eba4e86f51b1a119a53a9f1"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:37 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:02 2009 -0800"
      },
      "message": "cgroups: don\u0027t put struct cgroupfs_root protected by RCU\n\nWe don\u0027t access struct cgroupfs_root in fast path, so we should not put\nstruct cgroupfs_root protected by RCU\n\nBut the comment in struct cgroup_subsys.root confuse us.\n\nstruct cgroup_subsys.root is used in these places:\n\n1 find_css_set(): if (ss-\u003eroot-\u003esubsys_list.next \u003d\u003d \u0026ss-\u003esibling)\n2 rebind_subsystems(): if (ss-\u003eroot !\u003d \u0026rootnode)\n                       rcu_assign_pointer(ss-\u003eroot, root);\n                       rcu_assign_pointer(subsys[i]-\u003eroot, \u0026rootnode);\n3 cgroup_has_css_refs(): if (ss-\u003eroot !\u003d cgrp-\u003eroot)\n4 cgroup_init_subsys(): ss-\u003eroot \u003d \u0026rootnode;\n5 proc_cgroupstats_show(): ss-\u003ename, ss-\u003eroot-\u003esubsys_bits,\n                           ss-\u003eroot-\u003enumber_of_cgroups, !ss-\u003edisabled);\n6 cgroup_clone(): root \u003d subsys-\u003eroot;\n                  if ((root !\u003d subsys-\u003eroot) ||\n\nAll these place we have held cgroup_lock() or we don\u0027t dereference to\nstruct cgroupfs_root.  It\u0027s means wo don\u0027t need RCU when use struct\ncgroup_subsys.root, and we should not put struct cgroupfs_root protected\nby RCU.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2019f634ce5904c19eba4e86f51b1a119a53a9f1",
      "tree": "040b8645c0627baa0f4e44113589b5a4894ea629",
      "parents": [
        "b12b533fa523e94e0cc9dc23274ae4f9439f1313"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:36 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:02 2009 -0800"
      },
      "message": "cgroups: fix cgroup_iter_next() bug\n\nWe access res-\u003ecgroups without the task_lock(), so res-\u003ecgroups may be\nchanged.  it\u0027s unreliable, and \"if (l \u003d\u003d \u0026res-\u003ecgroups-\u003etasks)\" may be\nfalse forever.\n\nWe don\u0027t need add any lock for fixing this bug.  we just access to struct\ncss_set by struct cg_cgroup_link, not by struct task_struct.\n\nSince we hold css_set_lock, struct cg_cgroup_link is reliable.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b12b533fa523e94e0cc9dc23274ae4f9439f1313",
      "tree": "00a08a34388e835ae3103a6f00c96129d3fa59a4",
      "parents": [
        "c9d5409f8d46fd0d18b4a4481d9caa04076d87fc"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:36 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:02 2009 -0800"
      },
      "message": "cgroups: add lock for child-\u003ecgroups in cgroup_post_fork()\n\nWhen cgroup_post_fork() is called, child is seen by find_task_by_vpid(),\nso child-\u003ecgroups maybe be changed, It\u0027ll incorrect.\n\nchild-\u003ecgroups\u003cold\u003e\u0027s refcnt is decreased\nchild-\u003ecgroups\u003cnew\u003e\u0027s refcnt is increased\nbut child-\u003ecg_list is added to child-\u003ecgroups\u003cold\u003e\u0027s list.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "75139b8274c3e30354daea623f14b43a482a0bb5",
      "tree": "0da75602e260cd565d9f8c03d789744448966171",
      "parents": [
        "18e7f1f0d34be4a39f7f47324a3e26b43fddb714"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:01 2009 -0800"
      },
      "message": "cgroups: remove some redundant NULL checks\n\n- In cgroup_clone(), if vfs_mkdir() returns successfully,\n  dentry-\u003ed_fsdata will be the pointer to the newly created\n  cgroup and won\u0027t be NULL.\n\n- a cgroup file\u0027s dentry-\u003ed_fsdata won\u0027t be NULL, guaranteed\n  by cgroup_add_file().\n\n- When walking through the subsystems of a cgroup_fs (using\n  for_each_subsys), cgrp-\u003esubsys[ss-\u003esubsys_id] won\u0027t be NULL,\n  guaranteed by cgroup_create().\n\n(Also remove 2 unused variables in cgroup_rmdir().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e5991371ee0d1c0ce19e133c6f9075b49c5b4ae8",
      "tree": "3e5c9c3293c025f537ff4416660a96d33c694b5f",
      "parents": [
        "39f0dee2d8abe902617622b71f8f6f73985ec71c"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:01 2009 -0800"
      },
      "message": "mm: remove cgroup_mm_owner_callbacks\n\ncgroup_mm_owner_callbacks() was brought in to support the memrlimit\ncontroller, but sneaked into mainline ahead of it.  That controller has\nnow been shelved, and the mm_owner_changed() args were inadequate for it\nanyway (they needed an mm pointer instead of a task pointer).\n\nRemove the dead code, and restore mm_update_next_owner() locking to how it\nwas before: taking mmap_sem there does nothing for memcontrol.c, now the\nonly user of mm-\u003eowner.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "520c85346666d4d9a6fcaaa8450542302dc28b91",
      "tree": "9c9cc9e2493b606104dd8602302ae28258ebeac0",
      "parents": [
        "e8c82c2e23e3527e0c9dc195e432c16784d270fa",
        "4ae8978cf92a96257cd8998a49e781be83571d64"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:32:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:32:06 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  inotify: fix type errors in interfaces\n  fix breakage in reiserfs_new_inode()\n  fix the treatment of jfs special inodes\n  vfs: remove duplicate code in get_fs_type()\n  add a vfs_fsync helper\n  sys_execve and sys_uselib do not call into fsnotify\n  zero i_uid/i_gid on inode allocation\n  inode-\u003ei_op is never NULL\n  ntfs: don\u0027t NULL i_op\n  isofs check for NULL -\u003ei_op in root directory is dead code\n  affs: do not zero -\u003ei_op\n  kill suid bit only for regular files\n  vfs: lseek(fd, 0, SEEK_CUR) race condition\n"
    },
    {
      "commit": "56ff5efad96182f4d3cb3dc6b07396762c658f16",
      "tree": "cb91f93aa2324573527165d56d230b606a3111ed",
      "parents": [
        "acfa4380efe77e290d3a96b11cd4c9f24f4fbb18"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 09 09:34:39 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 05 11:54:28 2009 -0500"
      },
      "message": "zero i_uid/i_gid on inode allocation\n\n... and don\u0027t bother in callers.  Don\u0027t bother with zeroing i_blocks,\nwhile we are at it - it\u0027s already been zeroed.\n\ni_mode is not worth the effort; it has no common default value.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7b574b7b0124ed344911f5d581e9bc2d83bbeb19",
      "tree": "6511203310d77359017accb466f3f5e1e90abe13",
      "parents": [
        "7d3b56ba37a95f1f370f50258ed3954c304c524b"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Sun Jan 04 12:00:45 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 13:33:19 2009 -0800"
      },
      "message": "cgroups: fix a race between cgroup_clone and umount\n\nThe race is calling cgroup_clone() while umounting the ns cgroup subsys,\nand thus cgroup_clone() might access invalid cgroup_fs, or kill_sb() is\ncalled after cgroup_clone() created a new dir in it.\n\nThe BUG I triggered is BUG_ON(root-\u003enumber_of_cgroups !\u003d 1);\n\n  ------------[ cut here ]------------\n  kernel BUG at kernel/cgroup.c:1093!\n  invalid opcode: 0000 [#1] SMP\n  ...\n  Process umount (pid: 5177, ti\u003de411e000 task\u003de40c4670 task.ti\u003de411e000)\n  ...\n  Call Trace:\n   [\u003cc0493df7\u003e] ? deactivate_super+0x3f/0x51\n   [\u003cc04a3600\u003e] ? mntput_no_expire+0xb3/0xdd\n   [\u003cc04a3ab2\u003e] ? sys_umount+0x265/0x2ac\n   [\u003cc04a3b06\u003e] ? sys_oldumount+0xd/0xf\n   [\u003cc0403911\u003e] ? sysenter_do_call+0x12/0x31\n  ...\n  EIP: [\u003cc0456e76\u003e] cgroup_kill_sb+0x23/0xe0 SS:ESP 0068:e411ef2c\n  ---[ end trace c766c1be3bf944ac ]---\n\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Serge E. Hallyn\" \u003cserue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cbacc2c7f066a1e01b33b0e27ae5efbf534bc2db",
      "tree": "90d1093131d2a3543a8b3b1f3364e7c6f4081a93",
      "parents": [
        "4a6908a3a050aacc9c3a2f36b276b46c0629ad91",
        "74192246910ff4fb95309ba1a683215644beeb62"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Dec 25 11:40:09 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Dec 25 11:40:09 2008 +1100"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "20ca9b3f4c6dfa0af8dd5b18a64df17eb994b54d",
      "tree": "508c0b887653577a2e28dc238c820178593f0f91",
      "parents": [
        "e368d3a836797ddf193b1ec18c97407a791d2451"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Dec 23 13:57:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 23 15:58:21 2008 -0800"
      },
      "message": "cgroups: avoid accessing uninitialized data in failure path\n\nIf cgroup_get_rootdir() failed, free_cg_links() will be called in the\nfailure path, but tmp_cg_links hasn\u0027t been initialized at that time.\n\nI introduced this bug in the 2.6.27 merge window.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e368d3a836797ddf193b1ec18c97407a791d2451",
      "tree": "d8e34dc005f175b14d8e579a71e2ff064d018ce4",
      "parents": [
        "f00a189257836e5237ace3265f6991ef66a16c86"
      ],
      "author": {
        "name": "Sharyathi Nagesh",
        "email": "sharyath@in.ibm.com",
        "time": "Tue Dec 23 13:57:12 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 23 15:58:21 2008 -0800"
      },
      "message": "cgroups: suppress bogus warning messages\n\nRemove spurious warning messages that are thrown onto the console during\ncgroup operations.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Sharyathi Nagesh \u003csharyathi@in.ibm.com\u003e\nAcked-by: Serge E. Hallyn \u003cserge@hallyn.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "307257cf475aac25db30b669987f13d90c934e3a",
      "tree": "393a2c87fd1834aed3e686b65ba5479bae871b0d",
      "parents": [
        "38aefbc585c5d86df101e7644bff2c47112783d4"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Mon Dec 15 13:54:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 15 16:27:07 2008 -0800"
      },
      "message": "cgroups: fix a race between rmdir and remount\n\nWhen a cgroup is removed, it\u0027s unlinked from its parent\u0027s children list,\nbut not actually freed until the last dentry on it is released (at which\npoint cgrp-\u003eroot-\u003enumber_of_cgroups is decremented).\n\nCurrently rebind_subsystems checks for the top cgroup\u0027s child list being\nempty in order to rebind subsystems into or out of a hierarchy - this can\nresult in the set of subsystems bound to a hierarchy being\nremoved-but-not-freed cgroup.\n\nThe simplest fix for this is to forbid remounts that change the set of\nsubsystems on a hierarchy that has removed-but-not-freed cgroups.  This\nbug can be reproduced via:\n\nmkdir /mnt/cg\nmount -t cgroup -o ns,freezer cgroup /mnt/cg\nmkdir /mnt/cg/foo\nsleep 1h \u003c /mnt/cg/foo \u0026\nrmdir /mnt/cg/foo\nmount -t cgroup -o remount,ns,devices,freezer cgroup /mnt/cg\nkill $!\n\nThough the above will cause oops in -mm only but not mainline, but the bug\ncan cause memory leak in mainline (and even oops)\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec98ce480ada787f2cfbd696980ff3564415505b",
      "tree": "1a4d644b38f9f1e4b4e086fde0b195df4a92cf84",
      "parents": [
        "3496f92beb9aa99ef21fccc154a36c7698e9c538",
        "feaf3848a813a106f163013af6fcf6c4bfec92d9"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Dec 04 17:16:36 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Dec 04 17:16:36 2008 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tfs/nfsd/nfs4recover.c\n\nManually fixed above to use new creds API functions, e.g.\nnfs4_save_creds().\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "33d283bef23132c48195eafc21449f8ba88fce6b",
      "tree": "e4a04851127f2f46122cb96fc13e8da71a7bcf10",
      "parents": [
        "ea7e743e49b94749fc739baaf160809ed279aeda"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Nov 19 15:36:48 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:50:00 2008 -0800"
      },
      "message": "cgroups: fix a serious bug in cgroupstats\n\nTry this, and you\u0027ll get oops immediately:\n # cd Documentation/accounting/\n # gcc -o getdelays getdelays.c\n # mount -t cgroup -o debug xxx /mnt\n # ./getdelays -C /mnt/tasks\n\nBecause a normal file\u0027s dentry-\u003ed_fsdata is a pointer to struct cftype,\nnot struct cgroup.\n\nAfter the patch, it returns EINVAL if we try to get cgroupstats\nfrom a normal file.\n\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.25.x, 2.6.26.x, 2.6.27.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3fa59dfbc3b223f02c26593be69ce6fc9a940405",
      "tree": "d3d9df521342b49abc636e1ee465b704858b3e0d",
      "parents": [
        "0ae15132a4f5c758a6ffcde74495641dc3f62ba1"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Nov 19 15:36:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:58 2008 -0800"
      },
      "message": "cgroup: fix potential deadlock in pre_destroy\n\nAs Balbir pointed out, memcg\u0027s pre_destroy handler has potential deadlock.\n\nIt has following lock sequence.\n\n\tcgroup_mutex (cgroup_rmdir)\n\t    -\u003e pre_destroy -\u003e mem_cgroup_pre_destroy-\u003e force_empty\n\t\t-\u003e cpu_hotplug.lock. (lru_add_drain_all-\u003e\n\t\t\t\t      schedule_work-\u003e\n                                      get_online_cpus)\n\nBut, cpuset has following.\n\tcpu_hotplug.lock (call notifier)\n\t\t-\u003e cgroup_mutex. (within notifier)\n\nThen, this lock sequence should be fixed.\n\nConsidering how pre_destroy works, it\u0027s not necessary to holding\ncgroup_mutex() while calling it.\n\nAs a side effect, we don\u0027t have to wait at this mutex while memcg\u0027s\nforce_empty works.(it can be long when there are tons of pages.)\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b828925652340277a889cbc11b2d0637f7cdaf7",
      "tree": "32fcb3d3e466fc419fad2d3717956a5b5ad3d35a",
      "parents": [
        "3a3b7ce9336952ea7b9564d976d068a238976c9d",
        "58e20d8d344b0ee083febb18c2b021d2427e56ca"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 11:29:12 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 11:29:12 2008 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tsecurity/keys/internal.h\n\tsecurity/keys/process_keys.c\n\tsecurity/keys/request_key.c\n\nFixed conflicts above by using the non \u0027tsk\u0027 versions.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "c69e8d9c01db2adc503464993c358901c9af9de4",
      "tree": "bed94aaa9aeb7a7834d1c880f72b62a11a752c78",
      "parents": [
        "86a264abe542cfececb4df129bc45a0338d8cdb9"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:19 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:19 2008 +1100"
      },
      "message": "CRED: Use RCU to access another task\u0027s creds and to release a task\u0027s own creds\n\nUse RCU to access another task\u0027s creds and to release a task\u0027s own creds.\nThis means that it will be possible for the credentials of a task to be\nreplaced without another task (a) requiring a full lock to read them, and (b)\nseeing deallocated memory.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "b6dff3ec5e116e3af6f537d4caedcad6b9e5082a",
      "tree": "9e76f972eb7ce9b84e0146c8e4126a3f86acb428",
      "parents": [
        "15a2460ed0af7538ca8e6c610fe607a2cd9da142"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:16 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:16 2008 +1100"
      },
      "message": "CRED: Separate task security context from task_struct\n\nSeparate the task security context from task_struct.  At this point, the\nsecurity data is temporarily embedded in the task_struct with two pointers\npointing to it.\n\nNote that the Alpha arch is altered as it refers to (E)UID and (E)GID in\nentry.S via asm-offsets.\n\nWith comment fixes Signed-off-by: Marc Dionne \u003cmarc.c.dionne@gmail.com\u003e\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "76aac0e9a17742e60d408be1a706e9aaad370891",
      "tree": "e873a000d9c96209726e0958e311f005c13b2ed5",
      "parents": [
        "b103c59883f1ec6e4d548b25054608cb5724453c"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:12 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:12 2008 +1100"
      },
      "message": "CRED: Wrap task credential accesses in the core kernel\n\nWrap access to task credentials so that they can be separated more easily from\nthe task_struct during the introduction of COW creds.\n\nChange most current-\u003e(|e|s|fs)[ug]id to current_(|e|s|fs)[ug]id().\n\nChange some task-\u003ee?[ug]id to task_e?[ug]id().  In some places it makes more\nsense to use RCU directly rather than a convenient wrapper; these will be\naddressed by later patches.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: linux-audit@redhat.com\nCc: containers@lists.linux-foundation.org\nCc: linux-mm@kvack.org\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "24eb089950ce44603b30a3145a2c8520e2b55bb1",
      "tree": "3cccd3e15589c693c8c4e6484a938d2343ef1abc",
      "parents": [
        "b41ad14c30acf023d09ac064096a4cf41248ce46"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Nov 06 12:53:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:19 2008 -0800"
      },
      "message": "cgroups: fix invalid cgrp-\u003edentry before cgroup has been completely removed\n\nThis fixes an oops when reading /proc/sched_debug.\n\nA cgroup won\u0027t be removed completely until finishing cgroup_diput(), so we\nshouldn\u0027t invalidate cgrp-\u003edentry in cgroup_rmdir().  Otherwise, when a\ngroup is being removed while cgroup_path() gets called, we may trigger\nNULL dereference BUG.\n\nThe bug can be reproduced:\n\n # cat test.sh\n #!/bin/sh\n mount -t cgroup -o cpu xxx /mnt\n for (( ; ; ))\n {\n\tmkdir /mnt/sub\n\trmdir /mnt/sub\n }\n # ./test.sh \u0026\n # cat /proc/sched_debug\n\nBUG: unable to handle kernel NULL pointer dereference at 00000038\nIP: [\u003cc045a47f\u003e] cgroup_path+0x39/0x90\n...\nCall Trace:\n [\u003cc0420344\u003e] ? print_cfs_rq+0x6e/0x75d\n [\u003cc0421160\u003e] ? sched_debug_show+0x72d/0xc1e\n...\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.26.x, 2.6.27.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2077776641b6ffb0049f13018d2e162340ec51c7",
      "tree": "7fa3a58a4a8645f7a756e1f05c3f1d48ed6b639b",
      "parents": [
        "b1cd2ee3b95f1c3108c68c82342c614e58ce1f13"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Tue Oct 21 16:11:20 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 26 09:38:17 2008 -0700"
      },
      "message": "cgroup: remove unused variable\n\n/scratch/sfr/next/kernel/cgroup.c: In function \u0027cgroup_tasks_start\u0027:\n/scratch/sfr/next/kernel/cgroup.c:2107: warning: unused variable \u0027i\u0027\n\nIntroduced in commit cc31edceee04a7b87f2be48f9489ebb72d264844 \"cgroups:\nconvert tasks file to use a seq_file with shared pid array\".\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc31edceee04a7b87f2be48f9489ebb72d264844",
      "tree": "5d37791218c420281e509899645d89aee7902f2b",
      "parents": [
        "146aa1bd0511f88ddb4e92fafa2b8aad4f2f65f3"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Sat Oct 18 20:28:04 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:38 2008 -0700"
      },
      "message": "cgroups: convert tasks file to use a seq_file with shared pid array\n\nRather than pre-generating the entire text for the \"tasks\" file each\ntime the file is opened, we instead just generate/update the array of\nprocess ids and use a seq_file to report these to userspace.  All open\nfile handles on the same \"tasks\" file can share a pid array, which may\nbe updated any time that no thread is actively reading the array.  By\nsharing the array, the potential for userspace to DoS the system by\nopening many handles on the same \"tasks\" file is removed.\n\n[Based on a patch by Lai Jiangshan, extended to use seq_file]\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "146aa1bd0511f88ddb4e92fafa2b8aad4f2f65f3",
      "tree": "d7deb46b9a38f82f109b2126317899efbbce41c2",
      "parents": [
        "248736c2a57206388c86f8cdd3392ee986e84f9f"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Sat Oct 18 20:28:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:38 2008 -0700"
      },
      "message": "cgroups: fix probable race with put_css_set[_taskexit] and find_css_set\n\nput_css_set_taskexit may be called when find_css_set is called on other\ncpu.  And the race will occur:\n\nput_css_set_taskexit side                    find_css_set side\n\n                                        |\natomic_dec_and_test(\u0026kref-\u003erefcount)    |\n    /* kref-\u003erefcount \u003d 0 */            |\n....................................................................\n                                        |  read_lock(\u0026css_set_lock)\n                                        |  find_existing_css_set\n                                        |  get_css_set\n                                        |  read_unlock(\u0026css_set_lock);\n....................................................................\n__release_css_set                       |\n....................................................................\n                                        | /* use a released css_set */\n                                        |\n\n[put_css_set is the same. But in the current code, all put_css_set are\nput into cgroup mutex critical region as the same as find_css_set.]\n\n[akpm@linux-foundation.org: repair comments]\n[menage@google.com: eliminate race in css_set refcounting]\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9363b9f23c9cc36cc8ef6c05fdf879ee4a96ae92",
      "tree": "482746b06d6fdd8be606de4dff584a3a40054c4c",
      "parents": [
        "1648993fb05c487947c1cec6307aca29d8002abe"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Wed Oct 15 22:01:05 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:28 2008 -0700"
      },
      "message": "memrlimit: cgroup mm owner callback changes to add task info\n\nThis patch adds an additional field to the mm_owner callbacks. This field\nis required to get to the mm that changed. Hold mmap_sem in write mode\nbefore calling the mm_owner_changed callback\n\n[hugh@veritas.com: fix mmap_sem deadlock]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Sudhir Kumar \u003cskumar@linux.vnet.ibm.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31a78f23bac0069004e69f98808b6988baccb6b6",
      "tree": "edca8cffb4682de6be2e79b0b8d381dbb1b70964",
      "parents": [
        "bf5cb66447e7d9f7f111c1d0ebb6d7c90ec24b4d"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Sun Sep 28 23:09:31 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 29 08:41:47 2008 -0700"
      },
      "message": "mm owner: fix race between swapoff and exit\n\nThere\u0027s a race between mm-\u003eowner assignment and swapoff, more easily\nseen when task slab poisoning is turned on.  The condition occurs when\ntry_to_unuse() runs in parallel with an exiting task.  A similar race\ncan occur with callers of get_task_mm(), such as /proc/\u003cpid\u003e/\u003cmmstats\u003e\nor ptrace or page migration.\n\nCPU0                                    CPU1\n                                        try_to_unuse\n                                        looks at mm \u003d task0-\u003emm\n                                        increments mm-\u003emm_users\ntask 0 exits\nmm-\u003eowner needs to be updated, but no\nnew owner is found (mm_users \u003e 1, but\nno other task has task-\u003emm \u003d task0-\u003emm)\nmm_update_next_owner() leaves\n                                        mmput(mm) decrements mm-\u003emm_users\ntask0 freed\n                                        dereferencing mm-\u003eowner fails\n\nThe fix is to notify the subsystem via mm_owner_changed callback(),\nif no new owner is found, by specifying the new task as NULL.\n\nJiri Slaby:\nmm-\u003eowner was set to NULL prior to calling cgroup_mm_owner_callbacks(), but\nmust be set after that, so as not to pass NULL as old owner causing oops.\n\nDaisuke Nishimura:\nmm_update_next_owner() may set mm-\u003eowner to NULL, but mem_cgroup_from_task()\nand its callers need to take account of this situation to avoid oops.\n\nHugh Dickins:\nLockdep warning and hang below exec_mmap() when testing these patches.\nexit_mm() up_reads mmap_sem before calling mm_update_next_owner(),\nso exec_mmap() now needs to do the same.  And with that repositioning,\nthere\u0027s now no point in mm_need_new_owner() allowing for NULL mm.\n\nReported-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "55b6fd0162ace1e0f1b52c8c092565c115127ef6",
      "tree": "a2ace1f82ebdfe88d72e8c3ad7596e9d18ae2e35",
      "parents": [
        "36553434f475a84b653e25e74490ee8df43b86d5"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jul 29 22:33:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 30 09:41:44 2008 -0700"
      },
      "message": "cgroup: uninline cgroup_has_css_refs()\n\nIt\u0027s not small enough, and has 2 call sites.\n\n text    data     bss     dec     hex filename\n12813    1676    4832   19321    4b79 cgroup.o.orig\n12775    1676    4832   19283    4b53 cgroup.o\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "36553434f475a84b653e25e74490ee8df43b86d5",
      "tree": "869f827ebb4974674a26de22db6c15f122e63618",
      "parents": [
        "5a3eb9f6b7c598529f832b8baa6458ab1cbab2c6"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jul 29 22:33:19 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 30 09:41:44 2008 -0700"
      },
      "message": "cgroup: remove duplicate code in allocate_cg_link()\n\n- just call free_cg_links() in allocate_cg_links()\n- the list will get initialized in allocate_cg_links(), so don\u0027t init\n  it twice\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a3eb9f6b7c598529f832b8baa6458ab1cbab2c6",
      "tree": "16d1d481e86fb222e4e18c0681c1e5a4710675fb",
      "parents": [
        "1d1958f05095a7e9ecbba86235122784a3d1b561"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jul 29 22:33:18 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 30 09:41:44 2008 -0700"
      },
      "message": "cgroup: fix possible memory leak\n\nThere\u0027s a leak if copy_from_user() returns failure.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3f8206d496e9e9495afb1d4e70d29712b4d403c9",
      "tree": "5bedea1aff8b5e584fbf8497c80fcaccf9242d69",
      "parents": [
        "964bd183624c03680796b63b4ab97ee3905a806a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 03:46:43 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:42 2008 -0400"
      },
      "message": "[PATCH] get rid of indirect users of namei.h\n\nfs.h needs path.h, not namei.h; nfs_fs.h doesn\u0027t need it at all.\nSeveral places in the tree needed direct include.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "96930a6365c99c160138a395566e360b27348b8f",
      "tree": "c78d1d7f2cfcc863aa38726eddd3783814c6d174",
      "parents": [
        "0e1451da4f928ae1c9d5ca617faebde9f02985db"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 19:46:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:11 2008 -0700"
      },
      "message": "make cgroup_seqfile_release() static\n\ncgroup_seqfile_release() can become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e885dcde75685e09f23cffae1f6d5169c105b8a0",
      "tree": "711a91e83fad632c194700839d3e47631aee677a",
      "parents": [
        "856c13aa1ff6136c1968414fdea5938ea9d5ebf2"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Fri Jul 25 01:47:06 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:37 2008 -0700"
      },
      "message": "cgroup_clone: use pid of newly created task for new cgroup\n\ncgroup_clone creates a new cgroup with the pid of the task.  This works\ncorrectly for unshare, but for clone cgroup_clone is called from\ncopy_namespaces inside copy_process, which happens before the new pid is\ncreated.  As a result, the new cgroup was created with current\u0027s pid.\nThis patch:\n\n\t1. Moves the call inside copy_process to after the new pid\n\t   is created\n\t2. Passes the struct pid into ns_cgroup_clone (as it is not\n\t   yet attached to the task)\n\t3. Passes a name from ns_cgroup_clone() into cgroup_clone()\n\t   so as to keep cgroup_clone() itself simpler\n\t4. Uses pid_vnr() to get the process id value, so that the\n\t   pid used to name the new cgroup is always the pid as it\n\t   would be known to the task which did the cloning or\n\t   unsharing.  I think that is the most intuitive thing to\n\t   do.  This way, task t1 does clone(CLONE_NEWPID) to get\n\t   t2, which does clone(CLONE_NEWPID) to get t3, then the\n\t   cgroup for t3 will be named for the pid by which t2 knows\n\t   t3.\n\n(Thanks to Dan Smith for finding the main bug)\n\nChangelog:\n\tJune 11: Incorporate Paul Menage\u0027s feedback:  don\u0027t pass\n\t         NULL to ns_cgroup_clone from unshare, and reduce\n\t\t patch size by using \u0027nodename\u0027 in cgroup_clone.\n\tJune 10: Original version\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Serge Hallyn \u003cserge@us.ibm.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nTested-by: Dan Smith \u003cdanms@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af351026aafc8da16518a02b41c66d3e0c1cdef4",
      "tree": "f294376157f2e1c91f5a4b6ff90b4183dc6f7969",
      "parents": [
        "6379c106152388f7ea45d6dda63edda0e9181fc8"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Fri Jul 25 01:47:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:36 2008 -0700"
      },
      "message": "cgroup files: turn attach_task_by_pid directly into a cgroup write handler\n\nThis patch changes attach_task_by_pid() to take a u64 rather than a\nstring; as a result it can be called directly as a control groups\nwrite_u64 handler, and cgroup_common_file_write() can be removed.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6379c106152388f7ea45d6dda63edda0e9181fc8",
      "tree": "ad38aad4eb0f2b4431ff15ec85c3e3aea99f7207",
      "parents": [
        "84eea842886ac35020be6043e04748ed22014359"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Fri Jul 25 01:47:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:36 2008 -0700"
      },
      "message": "cgroup files: move notify_on_release file to separate write handler\n\nThis patch moves the write handler for the cgroups notify_on_release\nfile into a separate handler. This handler requires no cgroups locking\nsince it relies on atomic bitops for synchronization.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "84eea842886ac35020be6043e04748ed22014359",
      "tree": "acd2bb7c3bc267a032b5e637c598708f38c68cb3",
      "parents": [
        "e788e066c651b1bbf4a927dc95395c1aa13be436"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Fri Jul 25 01:47:00 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:35 2008 -0700"
      },
      "message": "cgroups: misc cleanups to write_string patchset\n\nThis patch contains cleanups suggested by reviewers for the recent\nwrite_string() patchset:\n\n- pair cgroup_lock_live_group() with cgroup_unlock() in cgroup.c for\n  clarity, rather than directly unlocking cgroup_mutex.\n\n- make the return type of cgroup_lock_live_group() a bool\n\n- use a #define\u0027d constant for the local buffer size in read/write functions\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e788e066c651b1bbf4a927dc95395c1aa13be436",
      "tree": "8ffb80dc5917ba5b77e17ab2b71afcea3aadfef8",
      "parents": [
        "db3b14978abc02041046ed8353f0899cb58ffffc"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Fri Jul 25 01:46:59 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:35 2008 -0700"
      },
      "message": "cgroup files: move the release_agent file to use typed handlers\n\nAdds cgroup_release_agent_write() and cgroup_release_agent_show()\nmethods to handle writing/reading the path to a cgroup hierarchy\u0027s\nrelease agent. As a result, cgroup_common_file_read() is now unnecessary.\n\nAs part of the change, a previously-tolerated race in\ncgroup_release_agent() is avoided by copying the current\nrelease_agent_path prior to calling call_usermode_helper().\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "db3b14978abc02041046ed8353f0899cb58ffffc",
      "tree": "355ba027c6354bd13bcbb5318e8478b3de4599e9",
      "parents": [
        "ce16b49d37e748574f7fabc2726268d542d0aa1a"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Fri Jul 25 01:46:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:35 2008 -0700"
      },
      "message": "cgroup files: add write_string cgroup control file method\n\nThis patch adds a write_string() method for cgroups control files. The\nsemantics are that a buffer is copied from userspace to kernelspace\nand the handler function invoked on that buffer.  The buffer is\nguaranteed to be nul-terminated, and no longer than max_write_len\n(defaulting to 64 bytes if unspecified). Later patches will convert\nexisting raw file write handlers in control group subsystems to use\nthis method.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8947f9d5b361ce927be6d5c11fed57905b7a4100",
      "tree": "f4a7d212cfef8889a60022c8ff3c9cfcf97962c2",
      "parents": [
        "71cbb949d17d4d776abd547135feb7f3282405c8"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Jul 25 01:46:56 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:35 2008 -0700"
      },
      "message": "cgroups: annotate two variables with __read_mostly\n\n- need_forkexit_callback will be read only after system boot.\n- use_task_css_set_links will be read only after it\u0027s set.\n\nAnd these 2 variables are checked when a new process is forked.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71cbb949d17d4d776abd547135feb7f3282405c8",
      "tree": "decd47a6cb05a36bb8a2f224b50bd12a8acc862e",
      "parents": [
        "f2992db2a4f7ae10f61d5bc68c7c1528cec639e2"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Jul 25 01:46:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:35 2008 -0700"
      },
      "message": "cgroup: list_for_each cleanup\n\n--------------------------\nwhile() {\n\tlist_entry();\n\t...\n}\n--------------------------\n\nis equivalent to following code.\n\n--------------------------\nlist_for_each_entry(){\n\t...\n}\n--------------------------\n\nlater can review easily more.\n\nthis patch is just clean up.\nit doesn\u0027t have any behavor change.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7e9abd89cbdf9b73d327d8173343abce9022609b",
      "tree": "7e738e46ba5e384fc6bc984196ed2d09a0ea8102",
      "parents": [
        "9d96d82da437ed5f2053821779ed5d7797ed1f81"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Jul 25 01:46:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:35 2008 -0700"
      },
      "message": "cgroup: use read lock to guard find_existing_css_set()\n\nThe function does not modify anything (except the temporary css template), so\nit\u0027s sufficient to hold read lock.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5c02b575780d0d785815a1e7b79a98edddee895a",
      "tree": "d77562541d5bdf30c19219f0af0db59162359963",
      "parents": [
        "12d15f0d51d47cec39d1d7250e81573c5cbd8b5d"
      ],
      "author": {
        "name": "Cedric Le Goater",
        "email": "clg@fr.ibm.com",
        "time": "Fri May 23 13:05:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 24 09:56:14 2008 -0700"
      },
      "message": "cgroups: remove node_ prefix_from ns subsystem\n\nThis is a slight change in the namespace cgroup subsystem api.\n\nThe change is that previously when cgroup_clone() was called (currently\nonly from the unshare path in ns_proxy cgroup, you\u0027d get a new group named\n\"node_$pid\" whereas now you\u0027ll get a group named after just your pid.)\n\nThe only users who would notice it are those who are using the ns_proxy\ncgroup subsystem to auto-create cgroups when namespaces are unshared -\nsomething of an experimental feature, which I think really needs more\ncomplete container/namespace support in order to be useful.  I suspect the\nonly users are Cedric and Serge, or maybe a few others on\ncontainers@lists.linux-foundation.org.  And in fact it would only be\nnoticed by the users who make the assumption about how the name is\ngenerated, rather than getting it from the /proc/\u003cpid\u003e/cgroups file for\nthe process in question.\n\nWhether the change is actually needed or not I\u0027m fairly agnostic on, but I\nguess it is more elegant to just use the pid as the new group name rather\nthan adding a fairly arbitrary \"node_\" prefix on the front.\n\n[menage@google.com: provided changelog]\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Paul Menage\" \u003cmenage@google.com\u003e\nCc: \"Serge E. Hallyn\" \u003cserue@us.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e4ad08fe64afca4ef79ecc4c624e6e871688da0d",
      "tree": "5b8b390b874700041dc0c095e8ba9ac3ed42ea77",
      "parents": [
        "76f1418b485da2707531178e517bbb5cf06b3c76"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 30 00:54:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:50 2008 -0700"
      },
      "message": "mm: bdi: add separate writeback accounting capability\n\nAdd a new BDI capability flag: BDI_CAP_NO_ACCT_WB.  If this flag is\nset, then don\u0027t update the per-bdi writeback stats from\ntest_set_page_writeback() and test_clear_page_writeback().\n\nMisc cleanups:\n\n - convert bdi_cap_writeback_dirty() and friends to static inline functions\n - create a flag that includes all three dirty/writeback related flags,\n   since almst all users will want to have them toghether\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf475ad28ac35cc9ba612d67158f29b73b38b05d",
      "tree": "2c7cd568d00357bd42643ea602884e731cc24f26",
      "parents": [
        "29486df325e1fe6e1764afcb19e3370804c2b002"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Tue Apr 29 01:00:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:10 2008 -0700"
      },
      "message": "cgroups: add an owner to the mm_struct\n\nRemove the mem_cgroup member from mm_struct and instead adds an owner.\n\nThis approach was suggested by Paul Menage.  The advantage of this approach\nis that, once the mm-\u003eowner is known, using the subsystem id, the cgroup\ncan be determined.  It also allows several control groups that are\nvirtually grouped by mm_struct, to exist independent of the memory\ncontroller i.e., without adding mem_cgroup\u0027s for each controller, to\nmm_struct.\n\nA new config option CONFIG_MM_OWNER is added and the memory resource\ncontroller selects this config option.\n\nThis patch also adds cgroup callbacks to notify subsystems when mm-\u003eowner\nchanges.  The mm_cgroup_changed callback is called with the task_lock() of\nthe new task held and is called just prior to changing the mm-\u003eowner.\n\nI am indebted to Paul Menage for the several reviews of this patchset and\nhelping me make it lighter and simpler.\n\nThis patch was tested on a powerpc box, it was compiled with both the\nMM_OWNER config turned on and off.\n\nAfter the thread group leader exits, it\u0027s moved to init_css_state by\ncgroup_exit(), thus all future charges from runnings threads would be\nredirected to the init_css_set\u0027s subsystem.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Sudhir Kumar \u003cskumar@linux.vnet.ibm.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e,\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "29486df325e1fe6e1764afcb19e3370804c2b002",
      "tree": "d69a96bb829940f3ae5171fde481edb20a9e468a",
      "parents": [
        "28fd5dfc12bde391981dfdcf20755952b6e916af"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Tue Apr 29 01:00:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:10 2008 -0700"
      },
      "message": "cgroups: introduce cft-\u003eread_seq()\n\nIntroduce a read_seq() helper in cftype, which uses seq_file to print out\nlists.  Use it in the devices cgroup.  Also split devices.allow into two\nfiles, so now devices.deny and devices.allow are the ones to use to manipulate\nthe whitelist, while devices.list outputs the cgroup\u0027s current whitelist.\n\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28fd5dfc12bde391981dfdcf20755952b6e916af",
      "tree": "ce0637c3f8c04d802b467cd518a9d0c076f1eeea",
      "parents": [
        "e8d55fdeb882cfcb5e8db5a5ce16edfba78aafc5"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Apr 29 01:00:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:10 2008 -0700"
      },
      "message": "cgroups: remove the css_set linked-list\n\nNow we can run through the hash table instead of running through the\nlinked-list.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8d55fdeb882cfcb5e8db5a5ce16edfba78aafc5",
      "tree": "0c0a7338d8adb2aaf4310eb89d1679c802ea617d",
      "parents": [
        "472b1053f3c319cc60bfb2a0bb062fed77a93eb6"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Apr 29 01:00:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:10 2008 -0700"
      },
      "message": "cgroups: simplify init_subsys()\n\nWe are at system boot and there is only 1 cgroup group (i,e, init_css_set), so\nwe don\u0027t need to run through the css_set linked list.  Neither do we need to\nrun through the task list, since no processes have been created yet.\n\nAlso referring to a comment in cgroup.h:\n\nstruct css_set\n{\n\t...\n\t/*\n\t * Set of subsystem states, one for each subsystem. This array\n\t * is immutable after creation apart from the init_css_set\n\t * during subsystem registration (at boot time).\n\t */\n\tstruct cgroup_subsys_state *subsys[CGROUP_SUBSYS_COUNT];\n}\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "472b1053f3c319cc60bfb2a0bb062fed77a93eb6",
      "tree": "2ef88bfdb7e397d3718a1bed38f13194f894097e",
      "parents": [
        "08ce5f16ee466ffc5bf243800deeecd77d9eaf50"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Apr 29 01:00:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:09 2008 -0700"
      },
      "message": "cgroups: use a hash table for css_set finding\n\nWhen we attach a process to a different cgroup, the css_set linked-list will\nbe run through to find a suitable existing css_set to use.  This patch\nimplements a hash table for better performance.\n\nThe following benchmarks have been tested:\n\nFor N in 1, 5, 10, 50, 100, 500, 1000, create N cgroups with one sleeping\ntask in each, and then move an additional task through each cgroup in\nturn.\n\nHere is a test result:\n\nN\tLoop\torig - Time(s)\thash - Time(s)\n----------------------------------------------\n1\t10000\t1.201231728\t1.196311177\n5\t2000\t1.065743872\t1.040566424\n10\t1000\t0.991054735\t0.986876440\n50\t200\t0.976554203\t0.969608733\n100\t100\t0.998504680\t0.969218270\n500\t20\t1.157347764\t0.962602963\n1000\t10\t1.619521852\t1.085140172\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d447ea2f30ec60370ddb99a668e5ac12995f043d",
      "tree": "f5d53c03d32323f3e916237f8ec0e0b2572f93b0",
      "parents": [
        "46ae220bea40bd1cf4abec2d5cdfb4f9396c7115"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Tue Apr 29 01:00:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:09 2008 -0700"
      },
      "message": "cgroups: add the trigger callback to struct cftype\n\nTrigger callback can be used to receive a kick-up from the user space.  The\nstring written is ignored.\n\nThe cftype-\u003eprivate is used for multiplexing events.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "46ae220bea40bd1cf4abec2d5cdfb4f9396c7115",
      "tree": "e485a13dd8d85d2f40ecf73d9482671dc39ceab1",
      "parents": [
        "06a119204d3e1e67d393e996ed987b0df7998381"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Apr 29 01:00:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:09 2008 -0700"
      },
      "message": "cgroup: switch to proc_create()\n\nThere is a race between create_proc_entry() and the assignment of file ops.\nproc_create() is invented to fix it.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06a119204d3e1e67d393e996ed987b0df7998381",
      "tree": "0cf3798102d13252d33c9907888a9608a0af6f96",
      "parents": [
        "06ecb27cfbf53ac2c7e397aa1619a6f9a98c5896"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Apr 29 01:00:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:09 2008 -0700"
      },
      "message": "cgroup: annotate cgroup_init_subsys with __init\n\nIt is called by cgroup_init() and cgroup_init_early() only, which are\nannotated with __init.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e73d2c61d1fcbd3621688ae457b49509c8d4c601",
      "tree": "e54b1543e786afd036b7884776a6753d8a8973f6",
      "parents": [
        "418d7d875ce7f33ef0d48d7cc3a95f31302dcf56"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Tue Apr 29 01:00:06 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:09 2008 -0700"
      },
      "message": "CGroups _s64 files: add cgroups read_s64/write_s64 file methods\n\nThese patches add cgroups read_s64 and write_s64 control file methods (the\nsigned equivalent of read_u64/write_u64) and use them to implement the\ncpu.rt_runtime_us control file in the CFS cgroup subsystem.\n\nThis patch:\n\nThese are the signed equivalents of the read_u64/write_u64 methods\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3116f0e3df0a67ad56f15dd4c5f6cefb04bb4a98",
      "tree": "27dc8e1000eb7c3e36157963415a0bc8b8555e44",
      "parents": [
        "c27e8818a09bbdfe7c07c629cb2c27e1a742e156"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Tue Apr 29 01:00:04 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:09 2008 -0700"
      },
      "message": "CGroup API files: move \"releasable\" to cgroup_debug subsystem\n\nThe \"releasable\" control file provided by the cgroup framework exports the\nstate of a per-cgroup flag that\u0027s related to the notify-on-release feature.\nThis isn\u0027t really generally useful, unless you\u0027re trying to debug this\nparticular feature of cgroups.\n\nThis patch moves the \"releasable\" file to the cgroup_debug subsystem.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Li Zefan\" \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"YAMAMOTO Takashi\" \u003cyamamoto@valinux.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9179656961adcea3c25403365597e486d851ac5e",
      "tree": "13acbdd7ae045ed46fa679e613783717eb3b9138",
      "parents": [
        "700fe1ab99240c1a9c4d155e2a0612a1b044bb69"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Tue Apr 29 01:00:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:08 2008 -0700"
      },
      "message": "CGroup API files: add cgroup map data type\n\nAdds a new type of supported control file representation, a map from strings\nto u64 values.\n\nEach map entry is printed as a line in a similar format to /proc/vmstat, i.e.\n\"$key $value\\n\"\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Li Zefan\" \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"YAMAMOTO Takashi\" \u003cyamamoto@valinux.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b7269dfc826fbf554c9e6a9eaa4e6ff95fa08656",
      "tree": "3be0f111e9951deb4e7ea5930ea659742dea419e",
      "parents": [
        "2c3daa722b624eaf0c5ea60e4f180bd0684542e2"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Tue Apr 29 00:59:59 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:08 2008 -0700"
      },
      "message": "CGroup API files: strip all trailing whitespace in cgroup_write_u64\n\nThis removes the need for people to remember to pass the -n flag to echo when\nwriting values to cgroup control files.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Li Zefan\" \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"YAMAMOTO Takashi\" \u003cyamamoto@valinux.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f4c753b7eacc277e506066abdda351cbc1cf8e6a",
      "tree": "2510264d4fac836dc64acd700846a5fe8d960b1e",
      "parents": [
        "3ff31d0cca38b3c20e88a022bf38c4f7c98492f0"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Tue Apr 29 00:59:56 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:07 2008 -0700"
      },
      "message": "CGroup API files: rename read/write_uint methods to read_write_u64\n\nSeveral people have justifiably complained that the \"_uint\" suffix is\ninappropriate for functions that handle u64 values, so this patch just renames\nall these functions and their users to have the suffic _u64.\n\n[peterz@infradead.org: build fix]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Li Zefan\" \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"YAMAMOTO Takashi\" \u003cyamamoto@valinux.co.jp\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4fe91d518e4958af7edebbeb112a3272b2be232d",
      "tree": "6c23637806a7206e21dcc42bfc65dbe433e212b7",
      "parents": [
        "3df91fe30a1547af7e794c6e8cca76f4932c6ad7"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Tue Apr 29 00:59:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:07 2008 -0700"
      },
      "message": "cgroup: fix sparse warning of shadow symbol in cgroup.c\n\nFix a code warning: symbol \u0027p\u0027 shadows an earlier one\n\nThis is a reincarnation of Harvey Harrison\u0027s patch:\n\tcpuset: sparse warnings in cpuset.c\n\nIndependently, Cliff Wickman moved the affected code,\nfrom kernel/cpuset.c to kernel/cgroup.c, in his patch:\n\tcpusets: update_cpumask revision\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Cliff Wickman \u003ccpw@sgi.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3df91fe30a1547af7e794c6e8cca76f4932c6ad7",
      "tree": "f8d459ba2a16aaf946f66d767c4066eaa937592e",
      "parents": [
        "3ef0e1f8cad0a851b3dbf91802b14af7dd780352"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Apr 29 00:59:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:07 2008 -0700"
      },
      "message": "make cgroup_enable_task_cg_lists() static\n\nMake the needlessly global cgroup_enable_task_cg_lists() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0e04388f0189fa1f6812a8e1cb6172136eada87e",
      "tree": "4e0bf422e8ed6b61b840ac45dadaca84b954f7ad",
      "parents": [
        "4b119e21d0c66c22e8ca03df05d9de623d0eb50f"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 17 11:37:15 2008 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 18 08:17:57 2008 -0700"
      },
      "message": "cgroup: fix a race condition in manipulating tsk-\u003ecg_list\n\nWhen I ran a test program to fork mass processes and at the same time\n\u0027cat /cgroup/tasks\u0027, I got the following oops:\n\n  ------------[ cut here ]------------\n  kernel BUG at lib/list_debug.c:72!\n  invalid opcode: 0000 [#1] SMP\n  Pid: 4178, comm: a.out Not tainted (2.6.25-rc9 #72)\n  ...\n  Call Trace:\n   [\u003cc044a5f9\u003e] ? cgroup_exit+0x55/0x94\n   [\u003cc0427acf\u003e] ? do_exit+0x217/0x5ba\n   [\u003cc0427ed7\u003e] ? do_group_exit+0.65/0x7c\n   [\u003cc0427efd\u003e] ? sys_exit_group+0xf/0x11\n   [\u003cc0404842\u003e] ? syscall_call+0x7/0xb\n   [\u003cc05e0000\u003e] ? init_cyrix+0x2fa/0x479\n  ...\n  EIP: [\u003cc04df671\u003e] list_del+0x35/0x53 SS:ESP 0068:ebc7df4\n  ---[ end trace caffb7332252612b ]---\n  Fixing recursive fault but reboot is needed!\n\nAfter digging into the code and debugging, I finlly found out a race\nsituation:\n\n\t\t\t\tdo_exit()\n\t\t\t\t  -\u003ecgroup_exit()\n\t\t\t\t    -\u003eif (!list_empty(\u0026tsk-\u003ecg_list))\n\t\t\t\t        list_del(\u0026tsk-\u003ecg_list);\n\n  cgroup_iter_start()\n    -\u003ecgroup_enable_task_cg_list()\n      -\u003elist_add(\u0026tsk-\u003ecg_list, ..);\n\nIn this case the list won\u0027t be deleted though the process has exited.\n\nWe got two bug reports in the past, which seem to be the same bug as\nthis one:\n\thttp://lkml.org/lkml/2008/3/5/332\n\thttp://lkml.org/lkml/2007/10/17/224\n\nActually sometimes I got oops on list_del, sometimes oops on list_add.\nAnd I can change my test program a bit to trigger other oops.\n\nThe patch has been tested both on x86_32 and x86_64.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b6c3006d204a0b86e1ebe02ca38f9f071a03c7ef",
      "tree": "f8f4487b8fe5dedb804c876c3e6f7df90f6b209d",
      "parents": [
        "d10d89ec78114f925f63c5126a2b2490f501a462"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Apr 10 21:29:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 11 08:06:43 2008 -0700"
      },
      "message": "cgroups: include hierarchy ids in /proc/\u003cpid\u003e/cgroup\n\nExtend the /proc/\u003cpid\u003e/cgroup file to include the appropriate hierarchy ID on\neach line.\n\nCurrently this ID isn\u0027t really needed since a hierarchy can be completely\nidentified by the set of subsystems bound to it, but this is likely to change\nin the near future in order to support stateless subsystems and\nmerging/rebinding of subsystems.  Getting this change into 2.6.25 reduces the\nneed for an API change later.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8bab8dded67d026c39367bbd5e27d2f6c556c38e",
      "tree": "d80f8f85f1da496c56bfa8575f0b59eba7c2ef55",
      "parents": [
        "3a143125ddc4e2e0ca1e67fb4bedd45c36e59cc7"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Fri Apr 04 14:29:57 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 04 14:46:26 2008 -0700"
      },
      "message": "cgroups: add cgroup support for enabling controllers at boot time\n\nThe effects of cgroup_disable\u003dfoo are:\n\n- foo isn\u0027t auto-mounted if you mount all cgroups in a single hierarchy\n- foo isn\u0027t visible as an individually mountable subsystem\n\nAs a result there will only ever be one call to foo-\u003ecreate(), at init time;\nall processes will stay in this group, and the group will never be mounted on\na visible hierarchy.  Any additional effects (e.g.  not allocating metadata)\nare up to the foo subsystem.\n\nThis doesn\u0027t handle early_init subsystems (their \"disabled\" bit isn\u0027t set be,\nbut it could easily be extended to do so if any of the early_init systems\nwanted it - I think it would just involve some nastier parameter processing\nsince it would occur before the command-line argument parser had been run.\n\nHugh said:\n\n  Ballpark figures, I\u0027m trying to get this question out rather than\n  processing the exact numbers: CONFIG_CGROUP_MEM_RES_CTLR adds 15% overhead\n  to the affected paths, booting with cgroup_disable\u003dmemory cuts that back to\n  1% overhead (due to slightly bigger struct page).\n\n  I\u0027m no expert on distros, they may have no interest whatever in\n  CONFIG_CGROUP_MEM_RES_CTLR\u003dy; and the rest of us can easily build with or\n  without it, or apply the cgroup_disable\u003dmemory patches.\n\nUnix bench\u0027s execl test result on x86_64 was\n\n\u003d\u003d just after boot without mounting any cgroup fs.\u003d\u003d\nmem_cgorup\u003doff : Execl Throughput       43.0     3150.1      732.6\nmem_cgroup\u003don  : Execl Throughput       43.0     2932.6      682.0\n\u003d\u003d\n\n[lizf@cn.fujitsu.com: fix boot option parsing]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Sudhir Kumar \u003cskumar@linux.vnet.ibm.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9dce07f1a441b77a15631cf0ed0238e0baa7ed64",
      "tree": "2131d670d31ae4727b4234e3e0ad176ae103d571",
      "parents": [
        "1076d17ac70d1bb28fadc6f4bd96977b56897025"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sat Mar 29 03:07:28 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 30 14:18:41 2008 -0700"
      },
      "message": "NULL noise: fs/*, mm/*, kernel/*\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b6abdb0e6ca5c2c0a7caa4131da2af0750927e72",
      "tree": "608c153a6c4b8feca409092bcc14c0710917a4da",
      "parents": [
        "fcab59a3186640ce085e89ee6dfc03cacfb6c7c9"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Mar 04 14:28:19 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:09 2008 -0800"
      },
      "message": "cgroup: fix default notify_on_release setting\n\nThe documentation says the default value of notify_on_release of a child\ncgroup is inherited from its parent, which is reasonable, but the\nimplementation just sets the flag disabled.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bc231d2a048010d5e0b49ac7fddbfa822fc41109",
      "tree": "5f38e9f917070a73e3de83d9e602c752b2e4c696",
      "parents": [
        "68db38f1537a44097e264f28bda751d6b919cd53"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Sat Feb 23 15:24:12 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 17:13:25 2008 -0800"
      },
      "message": "cgroup: remove dead code in cgroup_get_rootdir()\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "68db38f1537a44097e264f28bda751d6b919cd53",
      "tree": "efc311bb2825ea0ce78189dcc6a2704f9adecd9b",
      "parents": [
        "8d53d55d27754508e58e9ac18a4a445b110434bf"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Sat Feb 23 15:24:11 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 17:13:25 2008 -0800"
      },
      "message": "cgroup: remove duplicate code in find_css_set()\n\nThe list head res-\u003etasks gets initialized twice in find_css_set().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d53d55d27754508e58e9ac18a4a445b110434bf",
      "tree": "01bca7d82eb92c8e199c44ec37e7a70bb0a4a898",
      "parents": [
        "f777073848ba3708d68d87e43f104f83316187d7"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Sat Feb 23 15:24:11 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 17:13:24 2008 -0800"
      },
      "message": "cgroup: fix subsys bitops\n\nCgroup uses unsigned long for subsys bitops, not unsigned long long.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f777073848ba3708d68d87e43f104f83316187d7",
      "tree": "4eb0e5e36e70165c4eb7d41673bacd70423a986d",
      "parents": [
        "ffd2d883399cbbb641e55730676ce1ec4845d99d"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Sat Feb 23 15:24:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 17:13:24 2008 -0800"
      },
      "message": "cgroup: fix memory leak in cgroup_get_sb()\n\nopts.release_agent is not kfree()ed in all necessary places.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a043e3b2c63445512c5592cbe3c8694f3c655e81",
      "tree": "abfc3d3f475c32c7df14ada9fc4461b731628bd2",
      "parents": [
        "d19e0583300da82a6e27cd2116f558048502edaa"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Sat Feb 23 15:24:09 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 17:13:24 2008 -0800"
      },
      "message": "cgroup: fix comments\n\nfix:\n- comments about need_forkexit_callback\n- comments about release agent\n- typo and comment style, etc.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "73507f335f406ff31ceb97b39fa76eaee00f4f26",
      "tree": "0fc2afdd433f883525195c337150140a692a8170",
      "parents": [
        "b450129554213a4d4c5932f8a293646c029e1b0a"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Feb 07 00:14:47 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "Handle pid namespaces in cgroups code\n\nThere\u0027s one place that works with task pids - its the \"tasks\" file in cgroups.\n The read/write handlers assume, that the pid values go to/come from the user\nspace and thus it is a virtual pid, i.e.  the pid as it is seen from inside a\nnamespace.\n\nTune the code accordingly.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "956db3ca0606e78456786ef19fd4dc7a5151a6e1",
      "tree": "0bef3d107df1115ecf76e342f30ecee67a7f3705",
      "parents": [
        "31a7df01fd0cd786f60873a921aecafac148c290"
      ],
      "author": {
        "name": "Cliff Wickman",
        "email": "cpw@sgi.com",
        "time": "Thu Feb 07 00:14:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "hotplug cpu: move tasks in empty cpusets to parent\n\nThis patch corrects a situation that occurs when one disables all the cpus in\na cpuset.\n\nCurrently, the disabled (cpu-less) cpuset inherits the cpus of its parent,\nwhich is incorrect because it may then overlap its cpu-exclusive sibling.\n\nTasks of an empty cpuset should be moved to the cpuset which is the parent of\ntheir current cpuset.  Or if the parent cpuset has no cpus, to its parent,\netc.\n\nAnd the empty cpuset should be released (if it is flagged notify_on_release).\n\nDepends on the cgroup_scan_tasks() function (proposed by David Rientjes) to\niterate through all tasks in the cpu-less cpuset.  We are deliberately\navoiding a walk of the tasklist.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Cliff Wickman \u003ccpw@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31a7df01fd0cd786f60873a921aecafac148c290",
      "tree": "221f00c864c50e7dc4719cb4de09292040567c55",
      "parents": [
        "dfc05c259e424e4160c66eab728f55cc4b53fd75"
      ],
      "author": {
        "name": "Cliff Wickman",
        "email": "cpw@sgi.com",
        "time": "Thu Feb 07 00:14:42 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "cgroups: mechanism to process each task in a cgroup\n\nProvide cgroup_scan_tasks(), which iterates through every task in a cgroup,\ncalling a test function and a process function for each.  And call the process\nfunction without holding the css_set_lock lock.\n\nThe idea is David Rientjes\u0027, predicting that such a function will make it much\neasier in the future to extend things that require access to each task in a\ncgroup without holding the lock,\n\n[akpm@linux-foundation.org: cleanup]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Cliff Wickman \u003ccpw@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4fca88c87b7969c698912e2de9b1b31088c777cb",
      "tree": "6a086aaffb4ec17eadd2f2427c5816a02be6606f",
      "parents": [
        "d2ceb9b7ddedbb2e8e590bc6ce33c854043016f9"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memory cgroup enhancements: add- pre_destroy() handler\n\nAdd a handler \"pre_destroy\" to cgroup_subsys.  It is called before\ncgroup_rmdir() checks all subsys\u0027s refcnt.\n\nI think this is useful for subsys which have some extra refs even if there\nare no tasks in cgroup.  By adding pre_destroy(), the kernel keeps the rule\n\"destroy() against subsystem is called only when refcnt\u003d0.\" and allows css\nref to be used by other objects than tasks.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9685a03c8c3162cfa9ff02d254ea5c848f9facb",
      "tree": "9267e6f5bbccfb4af41a9efeb170e9d29a838d4f",
      "parents": [
        "8dc4f3e17dd5f7e59ce568155ccd8974af879315"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Thu Feb 07 00:13:46 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "kernel/cgroup.c: make 2 functions static\n\ncgroup_is_releasable() and notify_on_release() should be static,\nnot global inline.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8dc4f3e17dd5f7e59ce568155ccd8974af879315",
      "tree": "959b1197fea798c9daae4dd6c9596ab710d41fda",
      "parents": [
        "622d42cac9ed42098aa50c53994f625abfa3d473"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Feb 07 00:13:45 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "cgroups: move cgroups destroy() callbacks to cgroup_diput()\n\nMove the calls to the cgroup subsystem destroy() methods from\ncgroup_rmdir() to cgroup_diput().  This allows control file reads and\nwrites to access their subsystem state without having to be concerned with\nlocking against cgroup destruction - the control file dentry will keep the\ncgroup and its subsystem state objects alive until the file is closed.\n\nThe documentation is updated to reflect the changed semantics of destroy();\nadditionally the locking comments for destroy() and some other methods were\nclarified and decrustified.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "622d42cac9ed42098aa50c53994f625abfa3d473",
      "tree": "9bb8e2b5e84406609f2bcf04f45c60321511ca1a",
      "parents": [
        "e18f6318e5dab189efd4cb0bbfcbd923cc373e3c"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Thu Feb 07 00:13:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "cgroup simplify space stripping\n\nSimplify the space stripping code in cgroup file write.\n\n[akpm@linux-foundation.org: s/BUG_ON/BUILD_BUG_ON/]\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e18f6318e5dab189efd4cb0bbfcbd923cc373e3c",
      "tree": "b39152c3a5732c4fc0eba8830e82a0f4afb4d817",
      "parents": [
        "3cdeed2986b09fcc77b4812ca10dbc057e4e5f8c"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Thu Feb 07 00:13:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:17 2008 -0800"
      },
      "message": "cgroup brace coding style fix\n\nCoding style fix - one line conditionals don\u0027t get braces.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3cdeed2986b09fcc77b4812ca10dbc057e4e5f8c",
      "tree": "e6d1880751b119358a30385a2a65deaec695f0b5",
      "parents": [
        "8f1466ff0a6e81653e9bb0d9247495bf4e9db7e2"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Thu Feb 07 00:13:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:17 2008 -0800"
      },
      "message": "kernel/cgroup.c: remove dead code\n\nThis patch removes dead code spotted by the Coverity checker\n(look at the \"(nbytes \u003e\u003d PATH_MAX)\" check).\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cfe36bde59bc1ae868e775ad82386c3acaabb738",
      "tree": "4010591a81b8e8116f2c5f68bdfdd1290361401a",
      "parents": [
        "8cd8fa557f439f23baef2158b271667d0c579482"
      ],
      "author": {
        "name": "Diego Calleja",
        "email": "diegocg@gmail.com",
        "time": "Wed Nov 14 16:58:54 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Nov 14 18:45:37 2007 -0800"
      },
      "message": "Improve cgroup printks\n\nWhen I boot with the \u0027quiet\u0027 parameter, I see on the screen:\n\n[    0.000000] Initializing cgroup subsys cpuset\n[    0.000000] Initializing cgroup subsys cpu\n[   39.036026] Initializing cgroup subsys cpuacct\n[   39.036080] Initializing cgroup subsys debug\n[   39.036118] Initializing cgroup subsys ns\n\nThis patch lowers the priority of those messages, adds a \"cgroup: \" prefix\nto another couple of printks and kills the useless reference to the source\nfile.\n\nSigned-off-by: Diego Calleja \u003cdiegocg@gmail.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3bdf590eac36ac5930deb9552febee3ff18cd2d1",
      "tree": "2fb38debbfe27f4c1533af85d775d83d7b7abf30",
      "parents": [
        "01e7ae8c13bb06a2ce622ebace33bb7e28ef596c"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Oct 23 18:36:44 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Oct 23 21:28:39 2007 -0400"
      },
      "message": "cgroup: kill unused variable\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "bd89aabc6761de1c35b154fe6f914a445d301510",
      "tree": "4564755be493b144d9a78766eae3de87326e23e4",
      "parents": [
        "69cccb887a35f3761b7ea62cdd2bee602868c735"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:40:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:43 2007 -0700"
      },
      "message": "Control groups: Replace \"cont\" with \"cgrp\" and other misc renaming\n\nReplace \"cont\" with \"cgrp\" and other misc renaming\n\nThis patch finishes some of the names that got missed in the great\n\"task containers\" -\u003e \"control groups\" rename. Primarily it renames\nthe local variable \"cont\" to \"cgrp\" in a number of places, and renames\nthe CONT_* enum members to CGRP_*.\n\nThis patch is not intended to have any effect on the generated code;\nthe output of \"objdump -d kernel/cgroup.o\" is unchanged.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "69cccb887a35f3761b7ea62cdd2bee602868c735",
      "tree": "37197177f0d2a8c7b147a33acdca59e5bf8f96b6",
      "parents": [
        "6651fd561bc6fbc688542e9a5bf070c6485eebe8"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:43 2007 -0700"
      },
      "message": "Use task_pid_nr() instead of pid_nr(task_pid())\n\nThere are two places that do so - the cgroups subsystem and the autofs\ncode.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "846c7bb055747989891f5cd2bb6e8d56243ba1e7",
      "tree": "e044041366efa8298157c4ae86615d68d30dd6d2",
      "parents": [
        "c2e2c7fa1cb2cf2b114a6c9bc132b6601db5a7c8"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Oct 18 23:39:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Add cgroupstats\n\nThis patch is inspired by the discussion at\nhttp://lkml.org/lkml/2007/4/11/187 and implements per cgroup statistics\nas suggested by Andrew Morton in http://lkml.org/lkml/2007/4/11/263.  The\npatch is on top of 2.6.21-mm1 with Paul\u0027s cgroups v9 patches (forward\nported)\n\nThis patch implements per cgroup statistics infrastructure and re-uses\ncode from the taskstats interface.  A new set of cgroup operations are\nregistered with commands and attributes.  It should be very easy to\n*extend* per cgroup statistics, by adding members to the cgroupstats\nstructure.\n\nThe current model for cgroupstats is a pull, a push model (to post\nstatistics on interesting events), should be very easy to add.  Currently\nuser space requests for statistics by passing the cgroup file\ndescriptor.  Statistics about the state of all the tasks in the cgroup\nis returned to user space.\n\nTODO\u0027s/NOTE:\n\nThis patch provides an infrastructure for implementing cgroup statistics.\nBased on the needs of each controller, we can incrementally add more statistics,\nevent based support for notification of statistics, accumulation of taskstats\ninto cgroup statistics in the future.\n\nSample output\n\n# ./cgroupstats -C /cgroup/a\nsleeping 2, blocked 0, running 1, stopped 0, uninterruptible 0\n\n# ./cgroupstats -C /cgroup/\nsleeping 154, blocked 0, running 0, stopped 0, uninterruptible 0\n\nIf the approach looks good, I\u0027ll enhance and post the user space utility for\nthe same\n\nFeedback, comments, test results are always welcome!\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "81a6a5cdd2c5cd70874b88afe524ab09e9e869af",
      "tree": "ba46c47a0692b687a96e52e61bfda4f14457017f",
      "parents": [
        "817929ec274bcfe771586d338bb31d1659615686"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: automatic userspace notification of idle cgroups\n\nAdd the following files to the cgroup filesystem:\n\nnotify_on_release - configures/reports whether the cgroup subsystem should\nattempt to run a release script when this cgroup becomes unused\n\nrelease_agent - configures/reports the release agent to be used for this\nhierarchy (top level in each hierarchy only)\n\nreleasable - reports whether this cgroup would have been auto-released if\nnotify_on_release was true and a release agent was configured (mainly useful\nfor debugging)\n\nTo avoid locking issues, invoking the userspace release agent is done via a\nworkqueue task; cgroups that need to have their release agents invoked by\nthe workqueue task are linked on to a list.\n\n[pj@sgi.com: Need to include kmod.h]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "817929ec274bcfe771586d338bb31d1659615686",
      "tree": "5a96ed1afd308016e8720437a00bf2f114e907cb",
      "parents": [
        "a424316ca154317367c7ddf89997d1c80e4a8051"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: shared cgroup subsystem group arrays\n\nReplace the struct css_set embedded in task_struct with a pointer; all tasks\nthat have the same set of memberships across all hierarchies will share a\ncss_set object, and will be linked via their css_sets field to the \"tasks\"\nlist_head in the css_set.\n\nAssuming that many tasks share the same cgroup assignments, this reduces\noverall space usage and keeps the size of the task_struct down (three pointers\nadded to task_struct compared to a non-cgroups kernel, no matter how many\nsubsystems are registered).\n\n[akpm@linux-foundation.org: fix a printk]\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a424316ca154317367c7ddf89997d1c80e4a8051",
      "tree": "ed349926c41aad5be6d62c9074ff72a0d9ac32c2",
      "parents": [
        "697f41610863c9264a7ae26dac9a387c9dda8c84"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: add procfs interface\n\nAdd:\n\n/proc/cgroups - general system info\n\n/proc/*/cgroup - per-task cgroup membership info\n\n[a.p.zijlstra@chello.nl: cgroups: bdi init hooks]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "697f41610863c9264a7ae26dac9a387c9dda8c84",
      "tree": "9d4321f93abe36920a8e9d5239d120803f6cabbc",
      "parents": [
        "b4f48b6363c81ca743ef46943ef23fd72e60f679"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: add cgroup_clone() interface\n\nAdd support for cgroup_clone(), a way to create new cgroups intended to\nbe used for systems such as namespace unsharing.  A new subsystem callback,\npost_clone(), is added to allow subsystems to automatically configure cloned\ncgroups.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: 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"
    }
  ],
  "next": "b4f48b6363c81ca743ef46943ef23fd72e60f679"
}
