)]}'
{
  "log": [
    {
      "commit": "025cea99db3fb110ebc8ede5ff647833fab9574f",
      "tree": "cfef202674eaf06953405b03b000e77251287099",
      "parents": [
        "f2da1c40dc003939f616f27a103b2592f1424b07"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Mar 15 17:56:10 2011 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat May 07 22:50:47 2011 -0700"
      },
      "message": "cgroup,rcu: convert call_rcu(__free_css_id_cb) to kfree_rcu()\n\nThe rcu callback __free_css_id_cb() just calls a kfree(),\nso we use kfree_rcu() instead of the call_rcu(__free_css_id_cb).\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "f2da1c40dc003939f616f27a103b2592f1424b07",
      "tree": "a34d091b5652a7605269cff58b9e259dc94198a7",
      "parents": [
        "30088ad815802f850f26114920ccf9effd4bc520"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Mar 15 17:55:16 2011 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat May 07 22:50:46 2011 -0700"
      },
      "message": "cgroup,rcu: convert call_rcu(free_cgroup_rcu) to kfree_rcu()\n\nThe rcu callback free_cgroup_rcu() just calls a kfree(),\nso we use kfree_rcu() instead of the call_rcu(free_cgroup_rcu).\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "30088ad815802f850f26114920ccf9effd4bc520",
      "tree": "7002a56ddb8873ae42921f1f6605fcc7b0fbbd71",
      "parents": [
        "1217ed1ba5c67393293dfb0f03c353b118dadeb4"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Mar 15 17:53:46 2011 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat May 07 22:50:45 2011 -0700"
      },
      "message": "cgroup,rcu: convert call_rcu(free_css_set_rcu) to kfree_rcu()\n\nThe rcu callback free_css_set_rcu() just calls a kfree(),\nso we use kfree_rcu() instead of the call_rcu(free_css_set_rcu).\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "8d2587970b8bdf7c8d9208e3f4bb93182aef1a0f",
      "tree": "931cacaa98583412975b4601b62fb244a5ed678d",
      "parents": [
        "edd45544c6f09550df0a5491aa8a07af24767e73"
      ],
      "author": {
        "name": "Phil Carmody",
        "email": "ext-phil.2.carmody@nokia.com",
        "time": "Tue Mar 22 16:30:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:43:58 2011 -0700"
      },
      "message": "cgroups: if you list_empty() a head then don\u0027t list_del() it\n\nlist_del() leaves poison in the prev and next pointers.  The next\nlist_empty() will compare those poisons, and say the list isn\u0027t empty.\nAny list operations that assume the node is on a list because of such a\ncheck will be fooled into dereferencing poison.  One needs to INIT the\nnode after the del, and fortunately there\u0027s already a wrapper for that -\nlist_del_init().\n\nSome of the dels are followed by deallocations, so can be ignored, and one\ncan be merged with an add to make a move.  Apart from that, I erred on the\nside of caution in making nodes list_empty()-queriable.\n\nSigned-off-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Kirill A. Shutemov \u003ckirill@shutemov.name\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": "e5d1367f17ba6a6fed5fd8b74e4d5720923e0c25",
      "tree": "5862b4cddb7c88e0513e503cb3f46c60da2eeb6f",
      "parents": [
        "d41d5a01631af821d3a3447e6613a316f5ee6c25"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Mon Feb 14 11:20:01 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 16 13:30:48 2011 +0100"
      },
      "message": "perf: Add cgroup support\n\nThis kernel patch adds the ability to filter monitoring based on\ncontainer groups (cgroups). This is for use in per-cpu mode only.\n\nThe cgroup to monitor is passed as a file descriptor in the pid\nargument to the syscall. The file descriptor must be opened to\nthe cgroup name in the cgroup filesystem. For instance, if the\ncgroup name is foo and cgroupfs is mounted in /cgroup, then the\nfile descriptor is opened to /cgroup/foo. Cgroup mode is\nactivated by passing PERF_FLAG_PID_CGROUP in the flags argument\nto the syscall.\n\nFor instance to measure in cgroup foo on CPU1 assuming\ncgroupfs is mounted under /cgroup:\n\nstruct perf_event_attr attr;\nint cgroup_fd, fd;\n\ncgroup_fd \u003d open(\"/cgroup/foo\", O_RDONLY);\nfd \u003d perf_event_open(\u0026attr, cgroup_fd, 1, -1, PERF_FLAG_PID_CGROUP);\nclose(cgroup_fd);\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\n[ added perf_cgroup_{exit,attach} ]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4d590250.114ddf0a.689e.4482@mx.google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d41d5a01631af821d3a3447e6613a316f5ee6c25",
      "tree": "405ab6bc24e06a64dc17ccafb6daead1400cb29e",
      "parents": [
        "b00560f2d4de69bb12f66f9605985b516df98d77"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Feb 07 17:02:20 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 16 13:30:47 2011 +0100"
      },
      "message": "cgroup: Fix cgroup_subsys::exit callback\n\nMake the ::exit method act like ::attach, it is after all very nearly\nthe same thing.\n\nThe bug had no effect on correctness - fixing it is an optimization for\nthe scheduler. Also, later perf-cgroups patches rely on it.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nLKML-Reference: \u003c1297160655.13327.92.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "acda4721ae876dedab3fef04bbd8020bfa67ff0a",
      "tree": "ec48d554fe48b3915912e2ae62bc962ade0553bd",
      "parents": [
        "822e5215f9eef86c1dd56d5696bf55a212b0e3f0",
        "32385c7cf60a78375b63afc4f02001df84dfd1a0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 09:08:29 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 09:08:29 2011 -0800"
      },
      "message": "Merge branch \u0027vfs-scale-working\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/npiggin/linux-npiggin\n\n* \u0027vfs-scale-working\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/npiggin/linux-npiggin:\n  kernel: fix hlist_bl again\n  cgroups: Fix a lockdep warning at cgroup removal\n  fs: namei fix -\u003eput_link on wrong inode in do_filp_open\n"
    },
    {
      "commit": "c72a04e34735ec3f19f4788b7f95017310b5e1eb",
      "tree": "9a6958a8f291c4bd4ac80548565d3a41f8bec84a",
      "parents": [
        "323b7fe8f8f6d5ac6214382cf30e8b3a80b265c9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri Jan 14 05:31:45 2011 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 08:07:48 2011 -0800"
      },
      "message": "cgroup_fs: fix cgroup use of simple_lookup()\n\ncgroup can\u0027t use simple_lookup(), since that\u0027d override its desired -\u003ed_op.\n\nTested-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ec762ad8be364c2fadfe0d6b2cc6d4d3b5e1b54",
      "tree": "abd1529daad510dbf44a6ebcaa1f680b073eaca6",
      "parents": [
        "7b9337aaf98f9941d0927a75217d3ff31afec609"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Jan 14 11:34:34 2011 +0800"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 14 08:46:29 2011 +0000"
      },
      "message": "cgroups: Fix a lockdep warning at cgroup removal\n\nCommit 2fd6b7f5 (\"fs: dcache scale subdirs\") forgot to annotate a dentry\nlock, which caused a lockdep warning.\n\nReported-by: Valdis Kletnieks \u003cValdis.Kletnieks@vt.edu\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "0df6a63f8735a7c8a877878bc215d4312e41ef81",
      "tree": "93eb15c4408d86e16a6a96409670d16cf223e106",
      "parents": [
        "af53d29ac13a97304d44343dc3b26154ca595268"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 21 13:29:29 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 12 20:02:47 2011 -0500"
      },
      "message": "switch cgroup\n\nswitching it to s_d_op allows to kill the cgroup_lookup() kludge.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fb045adb99d9b7c562dc7fef834857f78249daa1",
      "tree": "1fd6a4024fffeec568abe100d730589bfdb81c38",
      "parents": [
        "5f57cbcc02cf18f6b22ef4066bb10afeb8f930ff"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:55 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:28 2011 +1100"
      },
      "message": "fs: dcache reduce branches in lookup path\n\nReduce some branches and memory accesses in dcache lookup by adding dentry\nflags to indicate common d_ops are set, rather than having to check them.\nThis saves a pointer memory access (dentry-\u003ed_op) in common path lookup\nsituations, and saves another pointer load and branch in cases where we\nhave d_op but not the particular operation.\n\nPatched with:\n\ngit grep -E \u0027[.\u003e]([[:space:]])*d_op([[:space:]])*\u003d\u0027 | xargs sed -e \u0027s/\\([^\\t ]*\\)-\u003ed_op \u003d \\(.*\\);/d_set_d_op(\\1, \\2);/\u0027 -e \u0027s/\\([^\\t ]*\\)\\.d_op \u003d \\(.*\\);/d_set_d_op(\\\u0026\\1, \\2);/\u0027 -i\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "dc0474be3e27463d4d4a2793f82366eed906f223",
      "tree": "41f75e638442cb343bacdcfbabb17ffc3bd5b4ce",
      "parents": [
        "357f8e658bba8a085c4a5d4331e30894be8096b8"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:43 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:24 2011 +1100"
      },
      "message": "fs: dcache rationalise dget variants\n\ndget_locked was a shortcut to avoid the lazy lru manipulation when we already\nheld dcache_lock (lru manipulation was relatively cheap at that point).\nHowever, how that the lru lock is an innermost one, we never hold it at any\ncaller, so the lock cost can now be avoided. We already have well working lazy\ndcache LRU, so it should be fine to defer LRU manipulations to scan time.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b5c84bf6f6fa3a7dfdcb556023a62953574b60ee",
      "tree": "7a2c299a180713e21d5cb653cb933121adf53c31",
      "parents": [
        "949854d02455080d20cd3e1db28a3a18daf7599d"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:38 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:23 2011 +1100"
      },
      "message": "fs: dcache remove dcache_lock\n\ndcache_lock no longer protects anything. remove it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "2fd6b7f50797f2e993eea59e0a0b8c6399c811dc",
      "tree": "ce33b94b34844c09103836cf4cfa4364b742f217",
      "parents": [
        "da5029563a0a026c64821b09e8e7b4fd81d3fe1b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:34 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:21 2011 +1100"
      },
      "message": "fs: dcache scale subdirs\n\nProtect d_subdirs and d_child with d_lock, except in filesystems that aren\u0027t\nusing dcache_lock for these anyway (eg. using i_mutex).\n\nNote: if we change the locking rule in future so that -\u003ed_child protection is\nprovided only with -\u003ed_parent-\u003ed_lock, it may allow us to reduce some locking.\nBut it would be an exception to an otherwise regular locking scheme, so we\u0027d\nhave to see some good results. Probably not worthwhile.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b7ab39f631f505edc2bbdb86620d5493f995c9da",
      "tree": "62be97ebc7fc69ceb601f23312d335ebb8038ee7",
      "parents": [
        "2304450783dfde7b0b94ae234edd0dbffa865073"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:32 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:21 2011 +1100"
      },
      "message": "fs: dcache scale dentry refcount\n\nMake d_count non-atomic and protect it with d_lock. This allows us to ensure a\n0 refcount dentry remains 0 without dcache_lock. It is also fairly natural when\nwe start protecting many other dentry members with d_lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fe15ce446beb3a33583af81ffe6c9d01a75314ed",
      "tree": "bc8af66b6dd2d0f21a2a3f48a19975ae2cdbae4e",
      "parents": [
        "5eef7fa905c814826f518aca2d414ca77508ce30"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:23 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:18 2011 +1100"
      },
      "message": "fs: change d_delete semantics\n\nChange d_delete from a dentry deletion notification to a dentry caching\nadvise, more like -\u003edrop_inode. Require it to be constant and idempotent,\nand not take d_lock. This is how all existing filesystems use the callback\nanyway.\n\nThis makes fine grained dentry locking of dput and dentry lru scanning\nmuch simpler.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "5adcee1d8d32d7f305f6f5aaefdbf8f35adca177",
      "tree": "9292ebc9bb6a21b364a97a44d1b6857a565159c5",
      "parents": [
        "3e880fb5e4bb6a012035e3edd0586ee2817c2e24"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:20 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:17 2011 +1100"
      },
      "message": "cgroup fs: avoid switching -\u003ed_op on live dentry\n\nSwitching d_op on a live dentry is racy in general, so avoid it. In this case\nit is a negative dentry, which is safer, but there are still concurrent ops\nwhich may be called on d_op in that case (eg. d_revalidate). So in general\na filesystem may not do this. Fix cgroupfs so as not to do this.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "f7e835710ab5f6e43933c983f38f2d2e262b718c",
      "tree": "6acdc8212053398e6913dc5c0d8392edcf202f05",
      "parents": [
        "ceefda6931806972ecf550bd8231dce4a4178953"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 13:23:11 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:17:06 2010 -0400"
      },
      "message": "convert cgroup and cpuset\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f4a2589feaef0a9b737a3e582b37ee96695bb25f",
      "tree": "ea5eb5c6f2c1f826893271b861d63272efd6546d",
      "parents": [
        "32a8cf235e2f192eb002755076994525cdbaa35a"
      ],
      "author": {
        "name": "Evgeny Kuznetsov",
        "email": "ext-eugeny.kuznetsov@nokia.com",
        "time": "Wed Oct 27 15:33:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:09 2010 -0700"
      },
      "message": "cgroups: add check for strcpy destination string overflow\n\nFunction \"strcpy\" is used without check for maximum allowed source string\nlength and could cause destination string overflow.  Check for string\nlength is added before using \"strcpy\".  Function now is return error if\nsource string length is more than a maximum.\n\nakpm: presently considered NotABug, but add the check for general\nfuture-safeness and robustness.\n\nSigned-off-by: Evgeny Kuznetsov \u003cEXT-Eugeny.Kuznetsov@nokia.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": "32a8cf235e2f192eb002755076994525cdbaa35a",
      "tree": "a4d849c31703d18365e063a4cc7627bfd13ca253",
      "parents": [
        "97978e6d1f2da0073416870410459694fbdbfd9b"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@free.fr",
        "time": "Wed Oct 27 15:33:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:09 2010 -0700"
      },
      "message": "cgroup: make the mount options parsing more accurate\n\nCurrent behavior:\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n(1) When we mount a cgroup, we can specify the \u0027all\u0027 option which\n    means to enable all the cgroup subsystems.  This is the default option\n    when no option is specified.\n\n(2) If we want to mount a cgroup with a subset of the supported cgroup\n    subsystems, we have to specify a subsystems name list for the mount\n    option.\n\n(3) If we specify another option like \u0027noprefix\u0027 or \u0027release_agent\u0027,\n    the actual code wants the \u0027all\u0027 or a subsystem name option specified\n    also.  Not critical but a bit not friendly as we should assume (1) in\n    this case.\n\n(4) Logically, the \u0027all\u0027 option is mutually exclusive with a subsystem\n    name, but this is not detected.\n\nIn other words:\n succeed : mount -t cgroup -o all,freezer cgroup /cgroup\n\t\u003d\u003e is it \u0027all\u0027 or \u0027freezer\u0027 ?\n fails : mount -t cgroup -o noprefix cgroup /cgroup\n\t\u003d\u003e succeed if we do \u0027-o noprefix,all\u0027\n\nThe following patches consolidate a bit the mount options check.\n\nNew behavior:\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n(1) untouched\n(2) untouched\n(3) the \u0027all\u0027 option will be by default when specifying other than\n    a subsystem name option\n(4) raises an error\n\nIn other words:\n fails   : mount -t cgroup -o all,freezer cgroup /cgroup\n succeed : mount -t cgroup -o noprefix cgroup /cgroup\n\nFor the sake of lisibility, the if ... then ... else ... if ...\nindentation when parsing the options has been changed to:\nif ... then\n\t...\n\tcontinue\nfi\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.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": "97978e6d1f2da0073416870410459694fbdbfd9b",
      "tree": "e8ff2fe4119d03fa54a45e8a101adbf9fb91a385",
      "parents": [
        "2d3cbf8bc852ac1bc3d098186143c5973f87b753"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@free.fr",
        "time": "Wed Oct 27 15:33:35 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:09 2010 -0700"
      },
      "message": "cgroup: add clone_children control file\n\nThe ns_cgroup is a control group interacting with the namespaces.  When a\nnew namespace is created, a corresponding cgroup is automatically created\ntoo.  The cgroup name is the pid of the process who did \u0027unshare\u0027 or the\nchild of \u0027clone\u0027.\n\nThis cgroup is tied with the namespace because it prevents a process to\nescape the control group and use the post_clone callback, so the child\ncgroup inherits the values of the parent cgroup.\n\nUnfortunately, the more we use this cgroup and the more we are facing\nproblems with it:\n\n(1) when a process unshares, the cgroup name may conflict with a\n    previous cgroup with the same pid, so unshare or clone return -EEXIST\n\n(2) the cgroup creation is out of control because there may have an\n    application creating several namespaces where the system will\n    automatically create several cgroups in his back and let them on the\n    cgroupfs (eg.  a vrf based on the network namespace).\n\n(3) the mix of (1) and (2) force an administrator to regularly check\n    and clean these cgroups.\n\nThis patchset removes the ns_cgroup by adding a new flag to the cgroup and\nthe cgroupfs mount option.  It enables the copy of the parent cgroup when\na child cgroup is created.  We can then safely remove the ns_cgroup as\nthis flag brings a compatibility.  We have now to manually create and add\nthe task to a cgroup, which is consistent with the cgroup framework.\n\nThis patch:\n\nSent as an answer to a previous thread around the ns_cgroup.\n\nhttps://lists.linux-foundation.org/pipermail/containers/2009-June/018627.html\n\nIt adds a control file \u0027clone_children\u0027 for a cgroup.  This control file\nis a boolean specifying if the child cgroup should be a clone of the\nparent cgroup or not.  The default value is \u0027false\u0027.\n\nThis flag makes the child cgroup to call the post_clone callback of all\nthe subsystem, if it is available.\n\nAt present, the cpuset is the only one which had implemented the\npost_clone callback.\n\nThe option can be set at mount time by specifying the \u0027clone_children\u0027\nmount option.\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nAcked-by: 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": "85fe4025c616a7c0ed07bc2fc8c5371b07f3888c",
      "tree": "7a5db7accb6192f2911f2473b4e3191227b914cc",
      "parents": [
        "f991bd2e14210fb93d722cb23e54991de20e8a3d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Oct 23 11:19:54 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:26:11 2010 -0400"
      },
      "message": "fs: do not assign default i_ino in new_inode\n\nInstead of always assigning an increasing inode number in new_inode\nmove the call to assign it into those callers that actually need it.\nFor now callers that need it is estimated conservatively, that is\nthe call is added to all filesystems that do not assign an i_ino\nby themselves.  For a few more filesystems we can avoid assigning\nany inode number given that they aren\u0027t user visible, and for others\nit could be done lazily when an inode number is actually needed,\nbut that\u0027s left for later patches.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
      "tree": "3bb53b7806c1baba6cc24b91724a9264cceccd39",
      "parents": [
        "c37927d4359e81b85de644f8fb08878717cf5f3f",
        "6d7bccc2215c37205ede6c9cf84db64e7c4f9443"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:01 2010 -0700"
      },
      "message": "Merge branch \u0027vfs\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027vfs\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl: (30 commits)\n  BKL: remove BKL from freevxfs\n  BKL: remove BKL from qnx4\n  autofs4: Only declare function when CONFIG_COMPAT is defined\n  autofs: Only declare function when CONFIG_COMPAT is defined\n  ncpfs: Lock socket in ncpfs while setting its callbacks\n  fs/locks.c: prepare for BKL removal\n  BKL: Remove BKL from ncpfs\n  BKL: Remove BKL from OCFS2\n  BKL: Remove BKL from squashfs\n  BKL: Remove BKL from jffs2\n  BKL: Remove BKL from ecryptfs\n  BKL: Remove BKL from afs\n  BKL: Remove BKL from USB gadgetfs\n  BKL: Remove BKL from autofs4\n  BKL: Remove BKL from isofs\n  BKL: Remove BKL from fat\n  BKL: Remove BKL from ext2 filesystem\n  BKL: Remove BKL from do_new_mount()\n  BKL: Remove BKL from cgroup\n  BKL: Remove BKL from NTFS\n  ...\n"
    },
    {
      "commit": "d4f8f217b8a5d5bd02af979650418dca4caec472",
      "tree": "af047bfa9729c975e24cb7624107574e884d3a57",
      "parents": [
        "2dfbf4dfbe47a484bae20456c12b40763b9b6af7",
        "773e3f93577ffb493fb7c39b1a6ecf39b5748e87"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 07 09:43:11 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 07 09:43:11 2010 +0200"
      },
      "message": "Merge branch \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu into core/rcu\n"
    },
    {
      "commit": "38d018dba3f725b969f196550d92a6ec1c092428",
      "tree": "3699b1b32aa5b6f42e323690299ba60f1b32b981",
      "parents": [
        "efdffb54034a6fc96bc7fafa33ca2a5503113eee"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@infradead.org",
        "time": "Wed Feb 24 13:25:34 2010 +0100"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 04 21:10:42 2010 +0200"
      },
      "message": "BKL: Remove BKL from cgroup\n\nThe BKL is only used in remount_fs and get_sb that are both protected by\nthe superblocks s_umount rw_semaphore. Therefore it is safe to remove the\nBKL entirely.\n\nSigned-off-by: Jan Blunck \u003cjblunck@infradead.org\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "db71922217a214e5c9268448e537b54fc1f301ea",
      "tree": "9c9afbf29411547891f6968e5ade29ce59d66c07",
      "parents": [
        "899611ee7d373e5eeda08e9a8632684e1ebbbf00"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@infradead.org",
        "time": "Sun Aug 15 22:51:10 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 04 21:10:10 2010 +0200"
      },
      "message": "BKL: Explicitly add BKL around get_sb/fill_super\n\nThis patch is a preparation necessary to remove the BKL from do_new_mount().\nIt explicitly adds calls to lock_kernel()/unlock_kernel() around\nget_sb/fill_super operations for filesystems that still uses the BKL.\n\nI\u0027ve read through all the code formerly covered by the BKL inside\ndo_kern_mount() and have satisfied myself that it doesn\u0027t need the BKL\nany more.\n\ndo_kern_mount() is already called without the BKL when mounting the rootfs\nand in nfsctl. do_kern_mount() calls vfs_kern_mount(), which is called\nfrom various places without BKL: simple_pin_fs(), nfs_do_clone_mount()\nthrough nfs_follow_mountpoint(), afs_mntpt_do_automount() through\nafs_mntpt_follow_link(). Both later functions are actually the filesystems\nfollow_link inode operation. vfs_kern_mount() is calling the specified\nget_sb function and lets the filesystem do its job by calling the given\nfill_super function.\n\nTherefore I think it is safe to push down the BKL from the VFS to the\nlow-level filesystems get_sb/fill_super operation.\n\n[arnd: do not add the BKL to those file systems that already\n       don\u0027t use it elsewhere]\n\nSigned-off-by: Jan Blunck \u003cjblunck@infradead.org\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "31583bb0cf6cc40f2a468a4d2f3b9cbefd24f891",
      "tree": "1c9ff4ff83ef80fe0b9b5d6fa7ec9af1ebbc2209",
      "parents": [
        "ed430fec756ad65f7cfba24f8ad17c3d5a403290"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Thu Sep 09 16:37:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:23 2010 -0700"
      },
      "message": "cgroups: fix API thinko\n\nAdd cgroup_attach_task_all()\n\nThe existing cgroup_attach_task_current_cg() API is called by a thread to\nattach another thread to all of its cgroups; this is unsuitable for cases\nwhere a privileged task wants to attach itself to the cgroups of a less\nprivileged one, since the call must be made from the context of the target\ntask.\n\nThis patch adds a more generic cgroup_attach_task_all() API that allows\nboth the source task and to-be-moved task to be specified.\ncgroup_attach_task_current_cg() becomes a specialization of the more\ngeneric new function.\n\n[menage@google.com: rewrote changelog]\n[akpm@linux-foundation.org: address reviewer comments]\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nTested-by: Alex Williamson \u003calex.williamson@redhat.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Ben Blum \u003cbblum@google.com\u003e\nCc: Sridhar Samudrala \u003csri@us.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": "2c392b8c3450ceb69ba1b93cb0cddb3998fb8cdc",
      "tree": "4e8e9414afe539baa66eacad9c99dd3bc15feabc",
      "parents": [
        "67bdbffd696f29a0b68aa8daa285783a06651583"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Feb 24 19:41:39 2010 +0100"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Aug 19 17:18:00 2010 -0700"
      },
      "message": "cgroups: __rcu annotations\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "e400c28524af2d344b1663b27bf28984fa959a0e",
      "tree": "00be68cbb87be859edd67da60dfd12506879fe01",
      "parents": [
        "2b24706a798d07cf40534d7763f608045e42e15f"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Tue Aug 10 18:02:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:18 2010 -0700"
      },
      "message": "cgroups: save space for the terminator\n\nThe original code didn\u0027t leave enough space for a NULL terminator.  These\nstrings are copied with strcpy() into fixed length buffers in\ncgroup_root_from_opts().\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nAcked-by: Serge E. Hallyn \u003cserge@hallyn.com\u003e\nReviewd-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "676db4af043014e852f67ba0349dae0071bd11f3",
      "tree": "63435bb80dc87454c54aec82e9ba78671b26e688",
      "parents": [
        "45daef0fdcc44f6af86fdebc4fc7eb7c79375398"
      ],
      "author": {
        "name": "Greg KH",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 05 13:53:35 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 05 13:53:35 2010 -0700"
      },
      "message": "cgroupfs: create /sys/fs/cgroup to mount cgroupfs on\n\nWe really shouldn\u0027t be asking userspace to create new root filesystems.\nSo follow along with all of the other in-kernel filesystems, and provide\na mount point in sysfs.\n\nFor cgroupfs, this should be in /sys/fs/cgroup/  This change provides\nthat mount point when the cgroup filesystem is registered in the kernel.\n\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Dhaval Giani \u003cdhaval.giani@gmail.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Lennart Poettering \u003clennart@poettering.net\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "6ba74014c1ab0e37af7de6f64b4eccbbae3cb9e7",
      "tree": "8f3892fc44f1e403675a6d7e88fda5c70e56ee4c",
      "parents": [
        "5abd9ccced7a726c817dd6b5b96bc933859138d1",
        "3ff1c25927e3af61c6bf0e4ed959504058ae4565"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 11:47:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 11:47:58 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1443 commits)\n  phy/marvell: add 88ec048 support\n  igb: Program MDICNFG register prior to PHY init\n  e1000e: correct MAC-PHY interconnect register offset for 82579\n  hso: Add new product ID\n  can: Add driver for esd CAN-USB/2 device\n  l2tp: fix export of header file for userspace\n  can-raw: Fix skb_orphan_try handling\n  Revert \"net: remove zap_completion_queue\"\n  net: cleanup inclusion\n  phy/marvell: add 88e1121 interface mode support\n  u32: negative offset fix\n  net: Fix a typo from \"dev\" to \"ndev\"\n  igb: Use irq_synchronize per vector when using MSI-X\n  ixgbevf: fix null pointer dereference due to filter being set for VLAN 0\n  e1000e: Fix irq_synchronize in MSI-X case\n  e1000e: register pm_qos request on hardware activation\n  ip_fragment: fix subtracting PPPOE_SES_HLEN from mtu twice\n  net: Add getsockopt support for TCP thin-streams\n  cxgb4: update driver version\n  cxgb4: add new PCI IDs\n  ...\n\nManually fix up conflicts in:\n - drivers/net/e1000e/netdev.c: due to pm_qos registration\n   infrastructure changes\n - drivers/net/phy/marvell.c: conflict between adding 88ec048 support\n   and cleaning up the IDs\n - drivers/net/wireless/ipw2x00/ipw2100.c: trivial ipw2100_pm_qos_req\n   conflict (registration change vs marking it static)\n"
    },
    {
      "commit": "d7926ee38f5c6e0bbebe712304f99a4c67e40f84",
      "tree": "2feae78726dae032741f81fc9590d61693a182f5",
      "parents": [
        "c23f3445e68e1db0e74099f264bc5ff5d55ebdeb"
      ],
      "author": {
        "name": "Sridhar Samudrala",
        "email": "samudrala.sridhar@gmail.com",
        "time": "Sun May 30 22:24:39 2010 +0200"
      },
      "committer": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Wed Jul 28 15:45:12 2010 +0300"
      },
      "message": "cgroups: Add an API to attach a task to current task\u0027s cgroup\n\nAdd a new kernel API to attach a task to current task\u0027s cgroup\nin all the active hierarchies.\n\nSigned-off-by: Sridhar Samudrala \u003csri@us.ibm.com\u003e\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "94b3dd0f7bb393d93e84a173b1df9b8b64c83ac4",
      "tree": "11f49a1614e8321a6b4335f7a5022a487838397d",
      "parents": [
        "007d08678eb87478b65b3f229960c81dd7c7b8f3"
      ],
      "author": {
        "name": "Greg Thelen",
        "email": "gthelen@google.com",
        "time": "Fri Jun 04 14:15:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 04 15:21:45 2010 -0700"
      },
      "message": "cgroups: alloc_css_id() increments hierarchy depth\n\nChild groups should have a greater depth than their parents.  Prior to\nthis change, the parent would incorrectly report zero memory usage for\nchild cgroups when use_hierarchy is enabled.\n\ntest script:\n  mount -t cgroup none /cgroups -o memory\n  cd /cgroups\n  mkdir cg1\n\n  echo 1 \u003e cg1/memory.use_hierarchy\n  mkdir cg1/cg11\n\n  echo $$ \u003e cg1/cg11/tasks\n  dd if\u003d/dev/zero of\u003d/tmp/foo bs\u003d1M count\u003d1\n\n  echo\n  echo CHILD\n  grep cache cg1/cg11/memory.stat\n\n  echo\n  echo PARENT\n  grep cache cg1/memory.stat\n\n  echo $$ \u003e tasks\n  rmdir cg1/cg11 cg1\n  cd /\n  umount /cgroups\n\nUsing fae9c79, a recent patch that changed alloc_css_id() depth computation,\nthe parent incorrectly reports zero usage:\n  root@ubuntu:~# ./test\n  1+0 records in\n  1+0 records out\n  1048576 bytes (1.0 MB) copied, 0.0151844 s, 69.1 MB/s\n\n  CHILD\n  cache 1048576\n  total_cache 1048576\n\n  PARENT\n  cache 0\n  total_cache 0\n\nWith this patch, the parent correctly includes child usage:\n  root@ubuntu:~# ./test\n  1+0 records in\n  1+0 records out\n  1048576 bytes (1.0 MB) copied, 0.0136827 s, 76.6 MB/s\n\n  CHILD\n  cache 1052672\n  total_cache 1052672\n\n  PARENT\n  cache 0\n  total_cache 1052672\n\nSigned-off-by: Greg Thelen \u003cgthelen@google.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.34.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "907860ed381a31b0102f362df67c1c5cae6ef050",
      "tree": "4f47a6fe898b1f45da505fc0c27d98e66d42aa46",
      "parents": [
        "ac39cf8cb86c45eeac6a592ce0d58f9021a97235"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Wed May 26 14:42:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:44 2010 -0700"
      },
      "message": "cgroups: make cftype.unregister_event() void-returning\n\nSince we are unable to handle an error returned by\ncftype.unregister_event() properly, let\u0027s make the callback\nvoid-returning.\n\nmem_cgroup_unregister_event() has been rewritten to be a \"never fail\"\nfunction.  On mem_cgroup_usage_register_event() we save old buffer for\nthresholds array and reuse it in mem_cgroup_usage_unregister_event() to\navoid allocation.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\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": "f39d01be4c59a61a08d0cb53f615e7016b85d339",
      "tree": "6777590e3ff2ddf4df1d38444ba7d692cd463b7b",
      "parents": [
        "54291263519ac2c9bdda68b23b02fef3808deed4",
        "7db82437cfcac4bdfe79a6323eb554fdfa271623"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:20:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:20:59 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (44 commits)\n  vlynq: make whole Kconfig-menu dependant on architecture\n  add descriptive comment for TIF_MEMDIE task flag declaration.\n  EEPROM: max6875: Header file cleanup\n  EEPROM: 93cx6: Header file cleanup\n  EEPROM: Header file cleanup\n  agp: use NULL instead of 0 when pointer is needed\n  rtc-v3020: make bitfield unsigned\n  PCI: make bitfield unsigned\n  jbd2: use NULL instead of 0 when pointer is needed\n  cciss: fix shadows sparse warning\n  doc: inode uses a mutex instead of a semaphore.\n  uml: i386: Avoid redefinition of NR_syscalls\n  fix \"seperate\" typos in comments\n  cocbalt_lcdfb: correct sections\n  doc: Change urls for sparse\n  Powerpc: wii: Fix typo in comment\n  i2o: cleanup some exit paths\n  Documentation/: it\u0027s -\u003e its where appropriate\n  UML: Fix compiler warning due to missing task_struct declaration\n  UML: add kernel.h include to signal.c\n  ...\n"
    },
    {
      "commit": "b8ae30ee26d379db436b0b8c8c3ff1b52f69e5d1",
      "tree": "506aa0b4bdbf90f61e7e9261c7db90aa1452dcce",
      "parents": [
        "4d7b4ac22fbec1a03206c6cde353f2fd6942f828",
        "9c6f7e43b4e02c161b53e97ba913855246876c61"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:27:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:27:54 2010 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (49 commits)\n  stop_machine: Move local variable closer to the usage site in cpu_stop_cpu_callback()\n  sched, wait: Use wrapper functions\n  sched: Remove a stale comment\n  ondemand: Make the iowait-is-busy time a sysfs tunable\n  ondemand: Solve a big performance issue by counting IOWAIT time as busy\n  sched: Intoduce get_cpu_iowait_time_us()\n  sched: Eliminate the ts-\u003eidle_lastupdate field\n  sched: Fold updating of the last_update_time_info into update_ts_time_stats()\n  sched: Update the idle statistics in get_cpu_idle_time_us()\n  sched: Introduce a function to update the idle statistics\n  sched: Add a comment to get_cpu_idle_time_us()\n  cpu_stop: add dummy implementation for UP\n  sched: Remove rq argument to the tracepoints\n  rcu: need barrier() in UP synchronize_sched_expedited()\n  sched: correctly place paranioa memory barriers in synchronize_sched_expedited()\n  sched: kill paranoia check in synchronize_sched_expedited()\n  sched: replace migration_thread with cpu_stop\n  stop_machine: reimplement using cpu_stop\n  cpu_stop: implement stop_cpu[s]()\n  sched: Fix select_idle_sibling() logic in select_task_rq_fair()\n  ...\n"
    },
    {
      "commit": "747388d78a0ae768fd82b55c4ed38aa646a72364",
      "tree": "03efabf9761209cffef4e8da9b6989887f76428e",
      "parents": [
        "7f0f15464185a92f9d8791ad231bcd7bf6df54e4"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue May 11 14:06:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 11 17:33:42 2010 -0700"
      },
      "message": "memcg: fix css_is_ancestor() RCU locking\n\nSome callers (in memcontrol.c) calls css_is_ancestor() without\nrcu_read_lock.  Because css_is_ancestor() has to access RCU protected\ndata, it should be under rcu_read_lock().\n\nThis makes css_is_ancestor() itself does safe access to RCU protected\narea.  (At least, \"root\" can have refcnt\u003d\u003d0 if it\u0027s not an ancestor of\n\"child\".  So, we need rcu_read_lock().)\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\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": "7f0f15464185a92f9d8791ad231bcd7bf6df54e4",
      "tree": "a1d4f4c39632659497963b0ccf62828237478d72",
      "parents": [
        "11cad320a4f4bc53d3585c85600c782faa12b99e"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue May 11 14:06:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 11 17:33:42 2010 -0700"
      },
      "message": "memcg: fix css_id() RCU locking for real\n\nCommit ad4ba375373937817404fd92239ef4cadbded23b (\"memcg: css_id() must be\ncalled under rcu_read_lock()\") modifies memcontol.c for fixing RCU check\nmessage.  But Andrew Morton pointed out that the fix doesn\u0027t seems sane\nand it was just for hidining lockdep messages.\n\nThis is a patch for do proper things.  Checking again, all places,\naccessing without rcu_read_lock, that commit fixies was intentional....\nall callers of css_id() has reference count on it.  So, it\u0027s not necessary\nto be under rcu_read_lock().\n\nConsidering again, we can use rcu_dereference_check for css_id().  We know\ncss-\u003eid is valid if css-\u003erefcnt \u003e 0.  (css-\u003eid never changes and freed\nafter css-\u003erefcnt going to be 0.)\n\nThis patch makes use of rcu_dereference_check() in css_id/depth and remove\nunnecessary rcu-read-lock added by the commit.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\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": "a93d2f1744206827ccf416e2cdc5018aa503314e",
      "tree": "c4c9daf16536d8d58db275617e19898f6c5bdbd7",
      "parents": [
        "af507ae8a0512a83728b17d8f8c5fa1561669f50"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Fri May 07 14:33:26 2010 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 11 17:43:58 2010 +0200"
      },
      "message": "sched, wait: Use wrapper functions\n\nepoll should not touch flags in wait_queue_t. This patch introduces a new\nfunction __add_wait_queue_exclusive(), for the users, who use wait queue as a\nLIFO queue.\n\n__add_wait_queue_tail_exclusive() is introduced too instead of\nadd_wait_queue_exclusive_locked(). remove_wait_queue_locked() is removed, as\nit is a duplicate of __remove_wait_queue(), disliked by users, and with less\nusers.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: \u003ccontainers@lists.linux-foundation.org\u003e\nLKML-Reference: \u003c1273214006-2979-1-git-send-email-xiaosuo@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fae9c791703606636c1220e47f6690660042ce7f",
      "tree": "c4d1bf20f4b73ee438ae2c3168b9b7ead1418215",
      "parents": [
        "9a9686b634acc5cb6b7c601c171ae64af0318a24"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 22 17:30:00 2010 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue May 04 09:25:00 2010 -0700"
      },
      "message": "cgroup: Fix an RCU warning in alloc_css_id()\n\nWith CONFIG_PROVE_RCU\u003dy, a warning can be triggered:\n\n  # mount -t cgroup -o memory xxx /mnt\n  # mkdir /mnt/0\n\n...\nkernel/cgroup.c:4442 invoked rcu_dereference_check() without protection!\n...\n\nThis is a false-positive. It\u0027s safe to directly access parent_css-\u003eid.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "9a9686b634acc5cb6b7c601c171ae64af0318a24",
      "tree": "4a8431117018d8883c6d34d5c06f2eff99dcfed6",
      "parents": [
        "e35ec2d2c1fc45dd3e46dde74bb0c4c4366125bf"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 22 17:29:24 2010 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue May 04 09:24:59 2010 -0700"
      },
      "message": "cgroup: Fix an RCU warning in cgroup_path()\n\nwith CONFIG_PROVE_RCU\u003dy, a warning can be triggered:\n\n  # mount -t cgroup -o debug xxx /mnt\n  # cat /proc/$$/cgroup\n\n...\nkernel/cgroup.c:1649 invoked rcu_dereference_check() without protection!\n...\n\nThis is a false-positive, because cgroup_path() can be called\nwith either rcu_read_lock() held or cgroup_mutex held.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "6c9468e9eb1252eaefd94ce7f06e1be9b0b641b1",
      "tree": "797676a336b050bfa1ef879377c07e541b9075d6",
      "parents": [
        "4cb3ca7cd7e2cae8d1daf5345ec99a1e8502cf3f",
        "c81eddb0e3728661d1585fbc564449c94165cc36"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Apr 23 02:08:44 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Apr 23 02:08:44 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "9d34706f42f9b8c15185423d9af98d37ba21d011",
      "tree": "beee69581a5deec172854fcc9517dfa42602e73b",
      "parents": [
        "5cfb80a73b5a52fb19d8b0611203e4dd58e8e9a2"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Mar 23 13:35:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 24 16:31:19 2010 -0700"
      },
      "message": "cgroups: remove duplicate include\n\ncommit e6a1105b (\"cgroups: subsystem module loading interface\") and commit\nc50cc752 (\"sched, cgroups: Fix module export\") result in duplicate\nincluding of module.h\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": "88393161210493e317ae391696ee8ef463cb3c23",
      "tree": "6ec81a50d0e8174b415d83948b48cbabd7e54ddb",
      "parents": [
        "932fb06b0898f5883200f1da2e00075f0d70ba9c"
      ],
      "author": {
        "name": "Thomas Weber",
        "email": "swirl@gmx.li",
        "time": "Tue Mar 16 11:47:56 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Mar 16 11:47:56 2010 +0100"
      },
      "message": "Fix typos in comments\n\n[Ss]ytem \u003d\u003e [Ss]ystem\nudpate \u003d\u003e update\nparamters \u003d\u003e parameters\norginal \u003d\u003e original\n\nSigned-off-by: Thomas Weber \u003cswirl@gmx.li\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "a0a4db548edcce067c1201ef25cf2bc29f32dca4",
      "tree": "6f8139a582179666cd248d978332ed0e32ad9f0f",
      "parents": [
        "4ab78683c17d739c2a2077141dcf81a02b7fb57e"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Wed Mar 10 15:22:34 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:52:37 2010 -0800"
      },
      "message": "cgroups: remove events before destroying subsystem state objects\n\nEvents should be removed after rmdir of cgroup directory, but before\ndestroying subsystem state objects.  Let\u0027s take reference to cgroup\ndirectory dentry to do that.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hioryu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Dan Malek \u003cdan@embeddedalley.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": "4ab78683c17d739c2a2077141dcf81a02b7fb57e",
      "tree": "5884c1b7e20d1975d668d07dbf43202d737ec7bf",
      "parents": [
        "daaf1e68874c078a15ae6ae827751839c4d81739"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Wed Mar 10 15:22:34 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:52:37 2010 -0800"
      },
      "message": "cgroups: fix race between userspace and kernelspace\n\nNotify userspace about cgroup removing only after rmdir of cgroup\ndirectory to avoid race between userspace and kernelspace.\n\neventfd are used to notify about two types of event:\n - control file-specific, like crossing memory threshold;\n - cgroup removing.\n\nTo understand what really happen, userspace can check if the cgroup still\nexists.  To avoid race beetween userspace and kernelspace we have to\nnotify userspace about cgroup removing only after rmdir of cgroup\ndirectory.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Dan Malek \u003cdan@embeddedalley.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": "0dea116876eefc9c7ca9c5d74fe665481e499fa3",
      "tree": "446ef64c99a234cf076b6d43efe42c8b48a928c7",
      "parents": [
        "483c30b514bd3037fa3f19fa42327c94c10f51c8"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Wed Mar 10 15:22:20 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:52:37 2010 -0800"
      },
      "message": "cgroup: implement eventfd-based generic API for notifications\n\nThis patchset introduces eventfd-based API for notifications in cgroups\nand implements memory notifications on top of it.\n\nIt uses statistics in memory controler to track memory usage.\n\nOutput of time(1) on building kernel on tmpfs:\n\nRoot cgroup before changes:\n\tmake -j2  506.37 user 60.93s system 193% cpu 4:52.77 total\nNon-root cgroup before changes:\n\tmake -j2  507.14 user 62.66s system 193% cpu 4:54.74 total\nRoot cgroup after changes (0 thresholds):\n\tmake -j2  507.13 user 62.20s system 193% cpu 4:53.55 total\nNon-root cgroup after changes (0 thresholds):\n\tmake -j2  507.70 user 64.20s system 193% cpu 4:55.70 total\nRoot cgroup after changes (1 thresholds, never crossed):\n\tmake -j2  506.97 user 62.20s system 193% cpu 4:53.90 total\nNon-root cgroup after changes (1 thresholds, never crossed):\n\tmake -j2  507.55 user 64.08s system 193% cpu 4:55.63 total\n\nThis patch:\n\nIntroduce the write-only file \"cgroup.event_control\" in every cgroup.\n\nTo register new notification handler you need:\n- create an eventfd;\n- open a control file to be monitored. Callbacks register_event() and\n  unregister_event() must be defined for the control file;\n- write \"\u003cevent_fd\u003e \u003ccontrol_fd\u003e \u003cargs\u003e\" to cgroup.event_control.\n  Interpretation of args is defined by control file implementation;\n\neventfd will be woken up by control file implementation or when the\ncgroup is removed.\n\nTo unregister notification handler just close eventfd.\n\nIf you need notification functionality for a control file you have to\nimplement callbacks register_event() and unregister_event() in the\nstruct cftype.\n\n[kamezawa.hiroyu@jp.fujitsu.com: Kconfig fix]\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nPaul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Dan Malek \u003cdan@embeddedalley.com\u003e\nCc: Vladislav Buzov \u003cvbuzov@embeddedalley.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Alexander Shishkin \u003cvirtuoso@slind.org\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: 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": "b70cc5fdb445a6929a01e9c406593265b136c99d",
      "tree": "7ca8ec384bd93de2ba516f045d9c8c5c77f5b84a",
      "parents": [
        "67523c48aa74d5637848edeccf285af1c60bf14a"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Mar 10 15:22:12 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:52:36 2010 -0800"
      },
      "message": "cgroups: clean up cgroup_pidlist_find() a bit\n\nDon\u0027t call get_pid_ns() before we locate/alloc the ns.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.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": "67523c48aa74d5637848edeccf285af1c60bf14a",
      "tree": "ebd14992e210c8dfb503ae5fdffc1f5392ad52df",
      "parents": [
        "8ca712ea84728531d36841ca8f98f9e8680bcf4e"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@andrew.cmu.edu",
        "time": "Wed Mar 10 15:22:11 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:52:36 2010 -0800"
      },
      "message": "cgroups: blkio subsystem as module\n\nModify the Block I/O cgroup subsystem to be able to be built as a module.\nAs the CFQ disk scheduler optionally depends on blk-cgroup, config options\nin block/Kconfig, block/Kconfig.iosched, and block/blk-cgroup.h are\nenhanced to support the new module dependency.\n\nSigned-off-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf5d5941fda647fe3d2f2d00cf9e0245236a5f08",
      "tree": "deee6501f2f08089a2cd62732c3848a59a6f6a93",
      "parents": [
        "e6a1105ba08b265023dd71a4174fb4a29ebc7083"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@andrew.cmu.edu",
        "time": "Wed Mar 10 15:22:09 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:52:36 2010 -0800"
      },
      "message": "cgroups: subsystem module unloading\n\nProvides support for unloading modular subsystems.\n\nThis patch adds a new function cgroup_unload_subsys which is to be used\nfor removing a loaded subsystem during module deletion.  Reference\ncounting of the subsystems\u0027 modules is moved from once (at load time) to\nonce per attached hierarchy (in parse_cgroupfs_options and\nrebind_subsystems) (i.e., 0 or 1).\n\nSigned-off-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@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": "e6a1105ba08b265023dd71a4174fb4a29ebc7083",
      "tree": "c171a012df4364b0feac5d6f1bf8c354164ab0f9",
      "parents": [
        "aae8aab40367036931608fdaf9e2dc568b516f19"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@andrew.cmu.edu",
        "time": "Wed Mar 10 15:22:09 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:52:36 2010 -0800"
      },
      "message": "cgroups: subsystem module loading interface\n\nAdd interface between cgroups subsystem management and module loading\n\nThis patch implements rudimentary module-loading support for cgroups -\nnamely, a cgroup_load_subsys (similar to cgroup_init_subsys) for use as a\nmodule initcall, and a struct module pointer in struct cgroup_subsys.\n\nSeveral functions that might be wanted by modules have had EXPORT_SYMBOL\nadded to them, but it\u0027s unclear exactly which functions want it and which\nwon\u0027t.\n\nSigned-off-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@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": "aae8aab40367036931608fdaf9e2dc568b516f19",
      "tree": "b2a06ee21042eb3972ecd9e4153d61a8f6ed53cb",
      "parents": [
        "d7b9fff711d5e8db8c844161c684017e556c38a0"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@andrew.cmu.edu",
        "time": "Wed Mar 10 15:22:07 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:52:36 2010 -0800"
      },
      "message": "cgroups: revamp subsys array\n\nThis patch series provides the ability for cgroup subsystems to be\ncompiled as modules both within and outside the kernel tree.  This is\nmainly useful for classifiers and subsystems that hook into components\nthat are already modules.  cls_cgroup and blkio-cgroup serve as the\nexample use cases for this feature.\n\nIt provides an interface cgroup_load_subsys() and cgroup_unload_subsys()\nwhich modular subsystems can use to register and depart during runtime.\nThe net_cls classifier subsystem serves as the example for a subsystem\nwhich can be converted into a module using these changes.\n\nPatch #1 sets up the subsys[] array so its contents can be dynamic as\nmodules appear and (eventually) disappear.  Iterations over the array are\nmodified to handle when subsystems are absent, and the dynamic section of\nthe array is protected by cgroup_mutex.\n\nPatch #2 implements an interface for modules to load subsystems, called\ncgroup_load_subsys, similar to cgroup_init_subsys, and adds a module\npointer in struct cgroup_subsys.\n\nPatch #3 adds a mechanism for unloading modular subsystems, which includes\na more advanced rework of the rudimentary reference counting introduced in\npatch 2.\n\nPatch #4 modifies the net_cls subsystem, which already had some module\ndeclarations, to be configurable as a module, which also serves as a\nsimple proof-of-concept.\n\nPart of implementing patches 2 and 4 involved updating css pointers in\neach css_set when the module appears or leaves.  In doing this, it was\ndiscovered that css_sets always remain linked to the dummy cgroup,\nregardless of whether or not any subsystems are actually bound to it\n(i.e., not mounted on an actual hierarchy).  The subsystem loading and\nunloading code therefore should keep in mind the special cases where the\nadded subsystem is the only one in the dummy cgroup (and therefore all\ncss_sets need to be linked back into it) and where the removed subsys was\nthe only one in the dummy cgroup (and therefore all css_sets should be\nunlinked from it) - however, as all css_sets always stay attached to the\ndummy cgroup anyway, these cases are ignored.  Any fix that addresses this\nissue should also make sure these cases are addressed in the subsystem\nloading and unloading code.\n\nThis patch:\n\nMake subsys[] able to be dynamically populated to support modular\nsubsystems\n\nThis patch reworks the way the subsys[] array is used so that subsystems\ncan register themselves after boot time, and enables the internals of\ncgroups to be able to handle when subsystems are not present or may\nappear/disappear.\n\nSigned-off-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@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": "d7b9fff711d5e8db8c844161c684017e556c38a0",
      "tree": "fea09ff79fe543edc2d8c0e85d35de1b2c783f2d",
      "parents": [
        "2468c7234b366eeb799ee0648cb58f9cba394a54"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Wed Mar 10 15:22:05 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:52:36 2010 -0800"
      },
      "message": "cgroup: introduce coalesce css_get() and css_put()\n\nCurrent css_get() and css_put() increment/decrement css-\u003erefcnt one by\none.\n\nThis patch add a new function __css_get(), which takes \"count\" as a arg\nand increment the css-\u003erefcnt by \"count\".  And this patch also add a new\narg(\"count\") to __css_put() and change the function to decrement the\ncss-\u003erefcnt by \"count\".\n\nThese coalesce version of __css_get()/__css_put() will be used to improve\nperformance of memcg\u0027s moving charge feature later, where instead of\ncalling css_get()/css_put() repeatedly, these new functions will be used.\n\nNo change is needed for current users of css_get()/css_put().\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.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": "2468c7234b366eeb799ee0648cb58f9cba394a54",
      "tree": "050d7ea224b975eb71b05bf472f14f4c7bb13670",
      "parents": [
        "5ce9f07bf1bed9a1f9886373ad0b149294f84c25"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Wed Mar 10 15:22:03 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:52:35 2010 -0800"
      },
      "message": "cgroup: introduce cancel_attach()\n\nAdd cancel_attach() operation to struct cgroup_subsys.  cancel_attach()\ncan be used when can_attach() operation prepares something for the subsys,\nbut we should rollback what can_attach() operation has prepared if attach\ntask fails after we\u0027ve succeeded in can_attach().\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-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\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.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": "c50cc75271759373bd89a036eec4d4269b291616",
      "tree": "f45a428f0a9b93929c3bf223da222075fca0a81a",
      "parents": [
        "1ed509a225008c9e8c0644fbd22168e09a7383a0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 25 12:02:13 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 25 12:02:13 2010 +0100"
      },
      "message": "sched, cgroups: Fix module export\n\nI have exported it in d11c563 - but cgroups.c did not have module.h included ...\n\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nLKML-Reference: \u003c1266887105-1528-6-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d11c563dd20ff35da5652c3e1c989d9e10e1d6d0",
      "tree": "b189f50de7a01d7603935d4da7e755d764dfe67e",
      "parents": [
        "a898def29e4119bc01ebe7ca97423181f4c0ea2d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Feb 22 17:04:50 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 25 10:34:26 2010 +0100"
      },
      "message": "sched: Use lockdep-based checking on rcu_dereference()\n\nUpdate the rcu_dereference() usages to take advantage of the new\nlockdep-based checking.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nLKML-Reference: \u003c1266887105-1528-6-git-send-email-paulmck@linux.vnet.ibm.com\u003e\n[ -v2: fix allmodconfig missing symbol export build failure on x86 ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4528fd0595847c2078b59f24800e751c2d6b7e41",
      "tree": "0be4aca79bc9b6709d4762f43ae53e2589931a85",
      "parents": [
        "ef2b9b054580ef835078d8aa411bd06542cd5c1c"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Feb 02 13:44:10 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 02 18:11:22 2010 -0800"
      },
      "message": "cgroups: fix to return errno in a failure path\n\nIn cgroup_create(), if alloc_css_id() returns failure, the errno is not\npropagated to userspace, so mkdir will fail silently.\n\nTo trigger this bug, we mount blkio (or memory subsystem), and create more\nthen 65534 cgroups.  (The number of cgroups is limited to 65535 if a\nsubsystem has use_id \u003d\u003d 1)\n\n # mount -t cgroup -o blkio xxx /mnt\n # for ((i \u003d 0; i \u003c 65534; i++)); do mkdir /mnt/$i; done\n # mkdir /mnt/65534\n (should return ENOSPC)\n #\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: 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": "bd4f490a079730aadfaf9a728303ea0135c01945",
      "tree": "7de1396233a18a8da5e4b204415a8859154c79bc",
      "parents": [
        "272a897904b9a067550f5b8e812036b65180418f"
      ],
      "author": {
        "name": "Dave Anderson",
        "email": "anderson@redhat.com",
        "time": "Fri Jan 08 14:42:50 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 11 09:34:05 2010 -0800"
      },
      "message": "cgroups: fix 2.6.32 regression causing BUG_ON() in cgroup_diput()\n\nThe LTP cgroup test suite generates a \"kernel BUG at kernel/cgroup.c:790!\"\nhere in cgroup_diput():\n\n                 /*\n                  * if we\u0027re getting rid of the cgroup, refcount should ensure\n                  * that there are no pidlists left.\n                  */\n                 BUG_ON(!list_empty(\u0026cgrp-\u003epidlists));\n\nThe cgroup pidlist rework in 2.6.32 generates the BUG_ON, which is caused\nwhen pidlist_array_load() calls cgroup_pidlist_find():\n\n(1) if a matching cgroup_pidlist is found, it down_write\u0027s the mutex of the\n     pre-existing cgroup_pidlist, and increments its use_count.\n(2) if no matching cgroup_pidlist is found, then a new one is allocated, it\n     down_write\u0027s its mutex, and the use_count is set to 0.\n(3) the matching, or new, cgroup_pidlist gets returned back to pidlist_array_load(),\n     which increments its use_count -- regardless whether new or pre-existing --\n     and up_write\u0027s the mutex.\n\nSo if a matching list is ever encountered by cgroup_pidlist_find() during\nthe life of a cgroup directory, it results in an inflated use_count value,\npreventing it from ever getting released by cgroup_release_pid_array().\nThen if the directory is subsequently removed, cgroup_diput() hits the\nBUG_ON() when it finds that the directory\u0027s cgroup is still populated with\na pidlist.\n\nThe patch simply removes the use_count increment when a matching pidlist\nis found by cgroup_pidlist_find(), because it gets bumped by the calling\npidlist_array_load() function while still protected by the list\u0027s mutex.\n\nSigned-off-by: Dave Anderson \u003canderson@redhat.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nCc: Paul Menage \u003cmenage@google.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": "478988d3b28e98a31e0cfe24e011e28ba0f3cf0d",
      "tree": "0f14f3a2f242258d2d7a0ddb3025c308f666b7ee",
      "parents": [
        "58355c7876a0754377c37c8af948b4cd423410e2"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Oct 26 16:49:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 29 07:39:25 2009 -0700"
      },
      "message": "cgroup: fix strstrip() misuse\n\ncgroup_write_X64() and cgroup_write_string() ignore the return value of\nstrstrip().  it makes small inconsistent behavior.\n\nexample:\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n # cd /mnt/cgroup/hoge\n # cat memory.swappiness\n 60\n # echo \"59 \" \u003e memory.swappiness\n # cat memory.swappiness\n 59\n # echo \" 58\" \u003e memory.swappiness\n bash: echo: write error: Invalid argument\n\nThis patch fixes it.\n\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-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": "3dece8347df6a16239fab10dadb370854f1c969c",
      "tree": "23a93cdb0dfacd4b89b42c192a6247be84d105bf",
      "parents": [
        "26251eaf98e26dc2ce2dc26d63bc502700760704"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Oct 01 15:44:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 01 16:11:12 2009 -0700"
      },
      "message": "cgroup: catch bad css refcnt at css_put\n\n__css_put() doesn\u0027t check a bug as refcnt goes to minus.\nI think it should be caught. This patch adds a check for it.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.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": "828c09509b9695271bcbdc53e9fc9a6a737148d2",
      "tree": "072ffad6f02db7bf4095e07e2b90247cfa042998",
      "parents": [
        "1c4115e595dec42aa0e81ba47ef46e35b34ed428"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 01 15:43:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 01 16:11:11 2009 -0700"
      },
      "message": "const: constify remaining file_operations\n\n[akpm@linux-foundation.org: fix KVM]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "be367d09927023d081f9199665c8500f69f14d22",
      "tree": "f0c5b9da037506da3c5890cf11b51b39a7d3c427",
      "parents": [
        "c378369d8b4fa516ff2b1e79c3eded4e0e955ebb"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@google.com",
        "time": "Wed Sep 23 15:56:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:58 2009 -0700"
      },
      "message": "cgroups: let ss-\u003ecan_attach and ss-\u003eattach do whole threadgroups at a time\n\nAlter the ss-\u003ecan_attach and ss-\u003eattach functions to be able to deal with\na whole threadgroup at a time, for use in cgroup_attach_proc.  (This is a\npre-patch to cgroup-procs-writable.patch.)\n\nCurrently, new mode of the attach function can only tell the subsystem\nabout the old cgroup of the threadgroup leader.  No subsystem currently\nneeds that information for each thread that\u0027s being moved, but if one were\nto be added (for example, one that counts tasks within a group) this bit\nwould need to be reworked a bit to tell the subsystem the right\ninformation.\n\n[hidave.darkstar@gmail.com: fix build]\nSigned-off-by: Ben Blum \u003cbblum@google.com\u003e\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReviewed-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c378369d8b4fa516ff2b1e79c3eded4e0e955ebb",
      "tree": "33dff6fa14c5b70cf25368b1bde57e5610a308b3",
      "parents": [
        "d1d9fd3308fdef6b4bf564fa3d6cfe35b68b50bc"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@google.com",
        "time": "Wed Sep 23 15:56:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:58 2009 -0700"
      },
      "message": "cgroups: change css_set freeing mechanism to be under RCU\n\nChanges css_set freeing mechanism to be under RCU\n\nThis is a prepatch for making the procs file writable. In order to free the\nold css_sets for each task to be moved as they\u0027re being moved, the freeing\nmechanism must be RCU-protected, or else we would have to have a call to\nsynchronize_rcu() for each task before freeing its old css_set.\n\nSigned-off-by: Ben Blum \u003cbblum@google.com\u003e\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d1d9fd3308fdef6b4bf564fa3d6cfe35b68b50bc",
      "tree": "8de392166f2edb696950a90e468ef27f043be509",
      "parents": [
        "72a8cb30d10d4041c455a7054607a7d519167c87"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@google.com",
        "time": "Wed Sep 23 15:56:28 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:58 2009 -0700"
      },
      "message": "cgroups: use vmalloc for large cgroups pidlist allocations\n\nSeparates all pidlist allocation requests to a separate function that\njudges based on the requested size whether or not the array needs to be\nvmalloced or can be gotten via kmalloc, and similar for kfree/vfree.\n\nSigned-off-by: Ben Blum \u003cbblum@google.com\u003e\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72a8cb30d10d4041c455a7054607a7d519167c87",
      "tree": "9b499f9c7f4de011ba5c8282df0b2280b7c21f0b",
      "parents": [
        "102a775e3647628727ae83a9a6abf0564c3ca7cb"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@google.com",
        "time": "Wed Sep 23 15:56:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:58 2009 -0700"
      },
      "message": "cgroups: ensure correct concurrent opening/reading of pidlists across pid namespaces\n\nPreviously there was the problem in which two processes from different pid\nnamespaces reading the tasks or procs file could result in one process\nseeing results from the other\u0027s namespace.  Rather than one pidlist for\neach file in a cgroup, we now keep a list of pidlists keyed by namespace\nand file type (tasks versus procs) in which entries are placed on demand.\nEach pidlist has its own lock, and that the pidlists themselves are passed\naround in the seq_file\u0027s private pointer means we don\u0027t have to touch the\ncgroup or its master list except when creating and destroying entries.\n\nSigned-off-by: Ben Blum \u003cbblum@google.com\u003e\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "102a775e3647628727ae83a9a6abf0564c3ca7cb",
      "tree": "77a3d9717daa0f1dceccc0dcdf821aa12e684e07",
      "parents": [
        "8f3ff20862cfcb85500a2bb55ee64622bd59fd0c"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@google.com",
        "time": "Wed Sep 23 15:56:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:58 2009 -0700"
      },
      "message": "cgroups: add a read-only \"procs\" file similar to \"tasks\" that shows only unique tgids\n\nstruct cgroup used to have a bunch of fields for keeping track of the\npidlist for the tasks file.  Those are now separated into a new struct\ncgroup_pidlist, of which two are had, one for procs and one for tasks.\nThe way the seq_file operations are set up is changed so that just the\npidlist struct gets passed around as the private data.\n\nInterface example: Suppose a multithreaded process has pid 1000 and other\nthreads with ids 1001, 1002, 1003:\n$ cat tasks\n1000\n1001\n1002\n1003\n$ cat cgroup.procs\n1000\n$\n\nSigned-off-by: Ben Blum \u003cbblum@google.com\u003e\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f3ff20862cfcb85500a2bb55ee64622bd59fd0c",
      "tree": "ccf408f52ee23b1c0130520a84c21bbd8f4077e7",
      "parents": [
        "2c6ab6d200827e1c41dc71fff3a2ac7473f51777"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Wed Sep 23 15:56:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:58 2009 -0700"
      },
      "message": "cgroups: revert \"cgroups: fix pid namespace bug\"\n\nThe following series adds a \"cgroup.procs\" file to each cgroup that\nreports unique tgids rather than pids, and allows all threads in a\nthreadgroup to be atomically moved to a new cgroup.\n\nThe subsystem \"attach\" interface is modified to support attaching whole\nthreadgroups at a time, which could introduce potential problems if any\nsubsystem were to need to access the old cgroup of every thread being\nmoved.  The attach interface may need to be revised if this becomes the\ncase.\n\nAlso added is functionality for read/write locking all CLONE_THREAD\nfork()ing within a threadgroup, by means of an rwsem that lives in the\nsighand_struct, for per-threadgroup-ness and also for sharing a cacheline\nwith the sighand\u0027s atomic count.  This scheme should introduce no extra\noverhead in the fork path when there\u0027s no contention.\n\nThe final patch reveals potential for a race when forking before a\nsubsystem\u0027s attach function is called - one potential solution in case any\nsubsystem has this problem is to hang on to the group\u0027s fork mutex through\nthe attach() calls, though no subsystem yet demonstrates need for an\nextended critical section.\n\nThis patch:\n\nRevert\n\ncommit 096b7fe012d66ed55e98bc8022405ede0cc80e96\nAuthor:     Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAuthorDate: Wed Jul 29 15:04:04 2009 -0700\nCommit:     Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCommitDate: Wed Jul 29 19:10:35 2009 -0700\n\n    cgroups: fix pid namespace bug\n\nThis is in preparation for some clashing cgroups changes that subsume the\noriginal commit\u0027s functionaliy.\n\nThe original commit fixed a pid namespace bug which Ben Blum fixed\nindependently (in the same way, but with different code) as part of a\nseries of patches.  I played around with trying to reconcile Ben\u0027s patch\nseries with Li\u0027s patch, but concluded that it was simpler to just revert\nLi\u0027s, given that Ben\u0027s patch series contained essentially the same fix.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c6ab6d200827e1c41dc71fff3a2ac7473f51777",
      "tree": "1ea1e6b46356a0c350c6bc3b39cb852628263fd9",
      "parents": [
        "7717f7ba92de485bce8293419a20ffef130f4286"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Wed Sep 23 15:56:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:58 2009 -0700"
      },
      "message": "cgroups: allow cgroup hierarchies to be created with no bound subsystems\n\nThis patch removes the restriction that a cgroup hierarchy must have at\nleast one bound subsystem.  The mount option \"none\" is treated as an\nexplicit request for no bound subsystems.\n\nA hierarchy with no subsystems can be useful for plain task tracking, and\nis also a step towards the support for multiply-bindable subsystems.\n\nAs part of this change, the hierarchy id is no longer calculated from the\nbitmask of subsystems in the hierarchy (since this is not guaranteed to be\nunique) but is allocated via an ida.  Reference counts on cgroups from\ncss_set objects are now taken explicitly one per hierarchy, rather than\none per subsystem.\n\nExample usage:\n\nmount -t cgroup -o none,name\u003dfoo cgroup /mnt/cgroup\n\nBased on the \"no-op\"/\"none\" subsystem concept proposed by\nkamezawa.hiroyu@jp.fujitsu.com\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Dhaval Giani \u003cdhaval@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": "7717f7ba92de485bce8293419a20ffef130f4286",
      "tree": "dc3d164fbef69e8481126bfc9cf596d0895c11e8",
      "parents": [
        "fe6934354f8e287275500cd6ec73826d4d6ad457"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Wed Sep 23 15:56:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:58 2009 -0700"
      },
      "message": "cgroups: add a back-pointer from struct cg_cgroup_link to struct cgroup\n\nCurrently the cgroups code makes the assumption that the subsystem\npointers in a struct css_set uniquely identify the hierarchy-\u003ecgroup\nmappings associated with the css_set; and there\u0027s no way to directly\nidentify the associated set of cgroups other than by indirecting through\nthe appropriate subsystem state pointers.\n\nThis patch removes the need for that assumption by adding a back-pointer\nfrom struct cg_cgroup_link object to its associated cgroup; this allows\nthe set of cgroups to be determined by traversing the cg_links list in\nthe struct css_set.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Dhaval Giani \u003cdhaval@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": "fe6934354f8e287275500cd6ec73826d4d6ad457",
      "tree": "f5ccab89d27472f5116257d1f7248594d3510882",
      "parents": [
        "c6d57f3312a6619d47c5557b5f6154a74d04ff80"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Wed Sep 23 15:56:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:57 2009 -0700"
      },
      "message": "cgroups: move the cgroup debug subsys into cgroup.c to access internal state\n\nWhile it\u0027s architecturally clean to have the cgroup debug subsystem be\ncompletely independent of the cgroups framework, it limits its usefulness\nfor debugging the contents of internal data structures.  Move the debug\nsubsystem code into the scope of all the cgroups data structures to make\nmore detailed debugging possible.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Dhaval Giani \u003cdhaval@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": "c6d57f3312a6619d47c5557b5f6154a74d04ff80",
      "tree": "b2e9214e58120c5d91ed0039afd06def62bfdf54",
      "parents": [
        "34f77a90f79fca31802c2e942bd73f7f557fe28c"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Wed Sep 23 15:56:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:57 2009 -0700"
      },
      "message": "cgroups: support named cgroups hierarchies\n\nTo simplify referring to cgroup hierarchies in mount statements, and to\nallow disambiguation in the presence of empty hierarchies and\nmultiply-bindable subsystems this patch adds support for naming a new\ncgroup hierarchy via the \"name\u003d\" mount option\n\nA pre-existing hierarchy may be specified by either name or by subsystems;\na hierarchy\u0027s name cannot be changed by a remount operation.\n\nExample usage:\n\n# To create a hierarchy called \"foo\" containing the \"cpu\" subsystem\nmount -t cgroup -oname\u003dfoo,cpu cgroup /mnt/cgroup1\n\n# To mount the \"foo\" hierarchy on a second location\nmount -t cgroup -oname\u003dfoo cgroup /mnt/cgroup2\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Dhaval Giani \u003cdhaval@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": "34f77a90f79fca31802c2e942bd73f7f557fe28c",
      "tree": "e8f07fe8da83e346029ea7a4d90c1b1039cdef36",
      "parents": [
        "55dff4954ebdeba2be59e19398a607d799c5fa9f"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "dfeng@redhat.com",
        "time": "Wed Sep 23 15:56:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:20:57 2009 -0700"
      },
      "message": "cgroups: make unlock sequence in cgroup_get_sb consistent\n\nMake the last unlock sequence consistent with previous unlock sequeue.\n\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88e9d34c727883d7d6f02cf1475b3ec98b8480c7",
      "tree": "475f544536d52739e0929e7727cab5124e855a06",
      "parents": [
        "b7ed698cc9d556306a4088c238e2ea9311ea2cb3"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Sep 22 16:43:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:29 2009 -0700"
      },
      "message": "seq_file: constify seq_operations\n\nMake all seq_operations structs const, to help mitigate against\nrevectoring user-triggerable function pointers.\n\nThis is derived from the grsecurity patch, although generated from scratch\nbecause it\u0027s simpler than extracting the changes from there.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e1d5dcc2bbbe71dbf010c747e15739bef6b7218",
      "tree": "2edb0f6cc65acbae95e42df1bc763ec048e6c2e0",
      "parents": [
        "7f09410bbc4306f592cfb43812389ea1c7905a20"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:24 2009 -0700"
      },
      "message": "const: mark remaining inode_operations as const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b87221de6a4934eda856475a0065688d12973a04",
      "tree": "6bcf0628e106c4833538f4c23d710fbbe3d7609a",
      "parents": [
        "0d54b217a247f39605361f867fefbb9e099a5432"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:24 2009 -0700"
      },
      "message": "const: mark remaining super_operations const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d993831fa7ffeb89e994f046f93eeb09ec91df08",
      "tree": "da4f94bbf022c83988bda71adf1f1b3a88cb4592",
      "parents": [
        "f09b00d3e789a88fa6c7c03cedc62cb65c1de0cb"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 12 14:45:52 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:26 2009 +0200"
      },
      "message": "writeback: add name to backing_dev_info\n\nThis enables us to track who does what and print info. Its main use\nis catching dirty inodes on the default_backing_dev_info, so we can\nfix that up.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "887032670d47366a8c8f25396ea7c14b7b2cc620",
      "tree": "e5f9ece5ab9239648e8d7051ccb9a217d92553d7",
      "parents": [
        "f0d83679a8d471dc8b646919f70595d6fe8c9606"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Jul 29 15:04:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 29 19:10:35 2009 -0700"
      },
      "message": "cgroup avoid permanent sleep at rmdir\n\nAfter commit ec64f51545fffbc4cb968f0cea56341a4b07e85a (\"cgroup: fix\nfrequent -EBUSY at rmdir\"), cgroup\u0027s rmdir (especially against memcg)\ndoesn\u0027t return -EBUSY by temporary ref counts.  That commit expects all\nrefs after pre_destroy() is temporary but...it wasn\u0027t.  Then, rmdir can\nwait permanently.  This patch tries to fix that and change followings.\n\n - set CGRP_WAIT_ON_RMDIR flag before pre_destroy().\n - clear CGRP_WAIT_ON_RMDIR flag when the subsys finds racy case.\n   if there are sleeping ones, wakes them up.\n - rmdir() sleeps only when CGRP_WAIT_ON_RMDIR flag is set.\n\nTested-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nReported-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Balbir Sigh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: 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": "096b7fe012d66ed55e98bc8022405ede0cc80e96",
      "tree": "755709b6d3ff21a9e9640d6c19432b31c863ad34",
      "parents": [
        "b317c833211b7fbf902163de766f09554090e0bf"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jul 29 15:04:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 29 19:10:35 2009 -0700"
      },
      "message": "cgroups: fix pid namespace bug\n\nThe bug was introduced by commit cc31edceee04a7b87f2be48f9489ebb72d264844\n(\"cgroups: convert tasks file to use a seq_file with shared pid array\").\n\nWe cache a pid array for all threads that are opening the same \"tasks\"\nfile, but the pids in the array are always from the namespace of the\nlast process that opened the file, so all other threads will read pids\nfrom that namespace instead of their own namespaces.\n\nTo fix it, we maintain a list of pid arrays, which is keyed by pid_ns.\nThe list will be of length 1 at most time.\n\nReported-by: Paul Menage \u003cmenage@google.com\u003e\nIdea-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReviewed-by: Serge Hallyn \u003cserue@us.ibm.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": "f9ab5b5b0f5be506640321d710b0acd3dca6154a",
      "tree": "abd8e17febed8507b4c0f96a88d2711fccb31b2b",
      "parents": [
        "8ca739e3694b83cdf22be0f6eff063e721deb1e4"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 17 16:26:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:46 2009 -0700"
      },
      "message": "cgroups: forbid noprefix if mounting more than just cpuset subsystem\n\nThe \u0027noprefix\u0027 option was introduced for backwards-compatibility of\ncpuset, but actually it can be used when mounting other subsystems.\n\nThis results in possibility of name collision, and now the collision can\nreally happen, because we have \u0027stat\u0027 file in both memory and cpuacct\nsubsystem:\n\n\t# mount -t cgroup -o noprefix,memory,cpuacct xxx /mnt\n\nCgroup will happily mount the 2 subsystems, but only \u0027stat\u0027 file of memory\nsubsys can be seen.\n\nWe don\u0027t want users to use nopreifx, and also want to avoid name\ncollision, so we change to allow noprefix only if mounting just the cpuset\nsubsystem.\n\n[akpm@linux-foundation.org: fix shift for cpuset_subsys_id \u003e\u003d 32]\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Dhaval Giani \u003cdhaval@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": "337eb00a2c3a421999c39c94ce7e33545ee8baa7",
      "tree": "d9b780d095b638b1d8fa23841ff70347cf5daa08",
      "parents": [
        "4195f73d1329e49727bcceb028e58cb38376c2b0"
      ],
      "author": {
        "name": "Alessio Igor Bogani",
        "email": "abogani@texware.it",
        "time": "Tue May 12 15:10:54 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:11 2009 -0400"
      },
      "message": "Push BKL down into -\u003eremount_fs()\n\n[xfs, btrfs, capifs, shmem don\u0027t need BKL, exempt]\n\nSigned-off-by: Alessio Igor Bogani \u003cabogani@texware.it\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6f5bbff9a1b7d6864a495763448a363bbfa96324",
      "tree": "0067dca46f40def1c55541c34c262e06aeb8c4c8",
      "parents": [
        "74dbbdd7fdc11763f4698d2f3e684cf4446951e6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed May 06 01:34:22 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 09 10:49:40 2009 -0400"
      },
      "message": "Convert obvious places to deactivate_locked_super()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0b7f569e45bb6be142d87017030669a6a7d327a1",
      "tree": "8df7877b95c093ebf4cb4e1006cea16f75fc79b7",
      "parents": [
        "81d39c20f5ee2437d71709beb82597e2a38efbbc"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: fix OOM killer under memcg\n\nThis patch tries to fix OOM Killer problems caused by hierarchy.\nNow, memcg itself has OOM KILL function (in oom_kill.c) and tries to\nkill a task in memcg.\n\nBut, when hierarchy is used, it\u0027s broken and correct task cannot\nbe killed. For example, in following cgroup\n\n\t/groupA/\thierarchy\u003d1, limit\u003d1G,\n\t\t01\tnolimit\n\t\t02\tnolimit\nAll tasks\u0027 memory usage under /groupA, /groupA/01, groupA/02 is limited to\ngroupA\u0027s 1Gbytes but OOM Killer just kills tasks in groupA.\n\nThis patch provides makes the bad process be selected from all tasks\nunder hierarchy. BTW, currently, oom_jiffies is updated against groupA\nin above case. oom_jiffies of tree should be updated.\n\nTo see how oom_jiffies is used, please check mem_cgroup_oom_called()\ncallers.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: const fix]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\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": "0670e08bdfc67272f8c3087030417465629b8073",
      "tree": "44a4e3b6059aeb8c2a97d5fb8ccf743a2eaafd07",
      "parents": [
        "099fca3225b39f7a3ed853036038054172b55581"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "cgroups: don\u0027t change release_agent when remount failed\n\nRemount can fail in either case:\n  - wrong mount options is specified, or option \u0027noprefix\u0027 is changed.\n  - a to-be-added subsys is already mounted/active.\n\nWhen using remount to change \u0027release_agent\u0027, for the above former failure\ncase, remount will return errno with release_agent unchanged, but for the\nlatter case, remount will return EBUSY with relase_agent changed, which is\nunexpected I think:\n\n # mount -t cgroup -o cpu xxx /cgrp1\n # mount -t cgroup -o cpuset,release_agent\u003dagent1 yyy /cgrp2\n # cat /cgrp2/release_agent\n agent1\n # mount -t cgroup -o remount,cpuset,noprefix,release_agent\u003dagent2 yyy /cgrp2\n mount: /cgrp2 not mounted already, or bad option\n # cat /cgrp2/release_agent\n agent1     \u003c-- ok\n # mount -t cgroup -o remount,cpu,cpuset,release_agent\u003dagent2 yyy /cgrp2\n mount: /cgrp2 is busy\n # cat /cgrp2/release_agent\n agent2     \u003c-- unexpected!\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": "099fca3225b39f7a3ed853036038054172b55581",
      "tree": "c7a8863f9ca8a5c745297e9ee43b63494b6022d1",
      "parents": [
        "b6719ec1ad54e47e40633b19703f2c1254708842"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "cgroups: show correct file mode\n\nWe have some read-only files and write-only files, but currently they are\nall set to 0644, which is counter-intuitive and cause trouble for some\ncgroup tools like libcgroup.\n\nThis patch adds \u0027mode\u0027 to struct cftype to allow cgroup subsys to set it\u0027s\nown files\u0027 file mode, and for the most cases cft-\u003emode can be default to 0\nand cgroup will figure out proper mode.\n\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.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": "66bdc9cfc77ba89a9ee6c82d28375b646ab4bb1d",
      "tree": "dd0d292a2f413f8c14d2219f8de94516fffe18b5",
      "parents": [
        "ec64f51545fffbc4cb968f0cea56341a4b07e85a"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Thu Apr 02 16:57:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "kernel/cgroup.c: kfree(NULL) is legal\n\nReduces object file size a bit:\n\nBefore:\n$ size kernel/cgroup.o\n   text    data     bss     dec     hex filename\n  21593    7804    4924   34321    8611 kernel/cgroup.o\nAfter:\n$ size kernel/cgroup.o\n   text    data     bss     dec     hex filename\n  21537    7744    4924   34205    859d kernel/cgroup.o\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.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": "ec64f51545fffbc4cb968f0cea56341a4b07e85a",
      "tree": "575d890a6759d81f3324fa2a22ca6ab14a41eefc",
      "parents": [
        "38460b48d06440de46b34cb778bd6c4855030754"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "cgroup: fix frequent -EBUSY at rmdir\n\nIn following situation, with memory subsystem,\n\n\t/groupA use_hierarchy\u003d\u003d1\n\t\t/01 some tasks\n\t\t/02 some tasks\n\t\t/03 some tasks\n\t\t/04 empty\n\nWhen tasks under 01/02/03 hit limit on /groupA, hierarchical reclaim\nis triggered and the kernel walks tree under groupA. In this case,\nrmdir /groupA/04 fails with -EBUSY frequently because of temporal\nrefcnt from the kernel.\n\nIn general. cgroup can be rmdir\u0027d if there are no children groups and\nno tasks. Frequent fails of rmdir() is not useful to users.\n(And the reason for -EBUSY is unknown to users.....in most cases)\n\nThis patch tries to modify above behavior, by\n\t- retries if css_refcnt is got by someone.\n\t- add \"return value\" to pre_destroy() and allows subsystem to\n\t  say \"we\u0027re really busy!\"\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.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": "38460b48d06440de46b34cb778bd6c4855030754",
      "tree": "8f3362a446b5b03879f715c3f7279e70842bcca9",
      "parents": [
        "313e924c0852943e67335fad9d2608701f0dfe8e"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:53 2009 -0700"
      },
      "message": "cgroup: CSS ID support\n\nPatch for Per-CSS(Cgroup Subsys State) ID and private hierarchy code.\n\nThis patch attaches unique ID to each css and provides following.\n\n - css_lookup(subsys, id)\n   returns pointer to struct cgroup_subysys_state of id.\n - css_get_next(subsys, id, rootid, depth, foundid)\n   returns the next css under \"root\" by scanning\n\nWhen cgroup_subsys-\u003euse_id is set, an id for css is maintained.\n\nThe cgroup framework only parepares\n\t- css_id of root css for subsys\n\t- id is automatically attached at creation of css.\n\t- id is *not* freed automatically. Because the cgroup framework\n\t  don\u0027t know lifetime of cgroup_subsys_state.\n\t  free_css_id() function is provided. This must be called by subsys.\n\nThere are several reasons to develop this.\n\t- Saving space .... For example, memcg\u0027s swap_cgroup is array of\n\t  pointers to cgroup. But it is not necessary to be very fast.\n\t  By replacing pointers(8bytes per ent) to ID (2byes per ent), we can\n\t  reduce much amount of memory usage.\n\n\t- Scanning without lock.\n\t  CSS_ID provides \"scan id under this ROOT\" function. By this, scanning\n\t  css under root can be written without locks.\n\t  ex)\n\t  do {\n\t\trcu_read_lock();\n\t\tnext \u003d cgroup_get_next(subsys, id, root, \u0026found);\n\t\t/* check sanity of next here */\n\t\tcss_tryget();\n\t\trcu_read_unlock();\n\t\tid \u003d found + 1\n\t } while(...)\n\nCharacteristics:\n\t- Each css has unique ID under subsys.\n\t- Lifetime of ID is controlled by subsys.\n\t- css ID contains \"ID\" and \"Depth in hierarchy\" and stack of hierarchy\n\t- Allowed ID is 1-65535, ID 0 is UNUSED ID.\n\nDesign Choices:\n\t- scan-by-ID v.s. scan-by-tree-walk.\n\t  As /proc\u0027s pid scan does, scan-by-ID is robust when scanning is done\n\t  by following kind of routine.\n\t  scan -\u003e rest a while(release a lock) -\u003e conitunue from interrupted\n\t  memcg\u0027s hierarchical reclaim does this.\n\n\t- When subsys-\u003euse_id is set, # of css in the system is limited to\n\t  65535.\n\n[bharata@linux.vnet.ibm.com: remove rcu_read_lock() from css_get_next()]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Bharata B Rao \u003cbharata@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": "313e924c0852943e67335fad9d2608701f0dfe8e",
      "tree": "fa4c3f65a7ed6edea52ae78b012138ebab1420c3",
      "parents": [
        "d20a390a0ee2bf2f692c539c6ce1c829e1080bb5"
      ],
      "author": {
        "name": "Grzegorz Nosek",
        "email": "root@localdomain.pl",
        "time": "Thu Apr 02 16:57:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:53 2009 -0700"
      },
      "message": "cgroups: relax ns_can_attach checks to allow attaching to grandchild cgroups\n\nThe ns_proxy cgroup allows moving processes to child cgroups only one\nlevel deep at a time.  This commit relaxes this restriction and makes it\npossible to attach tasks directly to grandchild cgroups, e.g.:\n\n($pid is in the root cgroup)\necho $pid \u003e /cgroup/CG1/CG2/tasks\n\nPreviously this operation would fail with -EPERM and would have to be\nperformed as two steps:\necho $pid \u003e /cgroup/CG1/tasks\necho $pid \u003e /cgroup/CG1/CG2/tasks\n\nAlso, the target cgroup no longer needs to be empty to move a task there.\n\nSigned-off-by: Grzegorz Nosek \u003croot@localdomain.pl\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nReviewed-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": "a3ec947c85ec339884b30ef6a08133e9311fdae1",
      "tree": "c3cc5859a6b6d8986547405b6c5bd11bc8916114",
      "parents": [
        "585d3bc06f4ca57f975a5a1f698f65a45ea66225"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Wed Mar 04 12:06:34 2009 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:44:03 2009 -0400"
      },
      "message": "vfs: simple_set_mnt() should return void\n\nsimple_set_mnt() is defined as returning \u0027int\u0027 but always returns 0.\nCallers assume simple_set_mnt() never fails and don\u0027t properly cleanup if\nit were to _ever_ fail.  For instance, get_sb_single() and get_sb_nodev()\nshould:\n\n        up_write(sb-\u003es_unmount);\n        deactivate_super(sb);\n\nif simple_set_mnt() fails.\n\nSince simple_set_mnt() never fails, would be cleaner if it did not\nreturn anything.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3ba13d179e8c24c68eac32b93593a6b10fcd1572",
      "tree": "732162ba9ddfe66c8e892a25765cb30f0807cf31",
      "parents": [
        "296c2d86635bd6ecd8f282dfff18bb68fb4fc512"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 20 06:02:22 2009 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:44:03 2009 -0400"
      },
      "message": "constify dentry_operations: rest\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "e7b80bb695a5b64c92e314838e083b2f3bdf29b2"
}
