)]}'
{
  "log": [
    {
      "commit": "8e3bbf42c6d73881956863cc3305456afe2bc4ea",
      "tree": "bb3369e7444a2efe8e890ddd341e576e3cba18c1",
      "parents": [
        "967db0ea65b0bf8507a7643ac8f296c4f2c0a834"
      ],
      "author": {
        "name": "Salman Qazi",
        "email": "sqazi@google.com",
        "time": "Thu Jun 14 14:55:30 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Jun 18 15:38:02 2012 -0700"
      },
      "message": "cgroups: Account for CSS_DEACT_BIAS in __css_put\n\nWhen we fixed the race between atomic_dec and css_refcnt, we missed\nthe fact that css_refcnt internally subtracts CSS_DEACT_BIAS to get\nthe actual reference count.  This can potentially cause a refcount leak\nif __css_put races with cgroup_clear_css_refs.\n\nSigned-off-by: Salman Qazi \u003csqazi@google.com\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "967db0ea65b0bf8507a7643ac8f296c4f2c0a834",
      "tree": "143a9493c9a81db130b313c0c46d87a909485541",
      "parents": [
        "71fae7e714749a52cb8be777ec014f82e8a747f4"
      ],
      "author": {
        "name": "Salman Qazi",
        "email": "sqazi@google.com",
        "time": "Wed Jun 06 18:51:35 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Jun 06 18:51:35 2012 -0700"
      },
      "message": "cgroup: make sure that decisions in __css_put are atomic\n\n__css_put is using atomic_dec on the ref count, and then\nlooking at the ref count to make decisions.  This is prone\nto races, as someone else may decrement ref count between\nour decrement and our decision.  Instead, we should base our\ndecisions on the value that we decremented the ref count to.\n\n(This results in an actual race on Google\u0027s kernel which I\nhaven\u0027t been able to reproduce on the upstream kernel.  Having\nsaid that, it\u0027s still incorrect by inspection).\n\nSigned-off-by: Salman Qazi \u003csqazi@google.com\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "365f0e173f44aad979c464eb8250f6138a9911ef",
      "tree": "cec00f56b5ab382df2701e06dc02bdfd04dbd628",
      "parents": [
        "690efa08e268a36df170bee79df93a9649c3f217",
        "fa980ca87d15bb8a1317853f257a505990f3ffde"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 05 11:54:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 05 11:54:12 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.5-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup\n\nPull cgroup fix from Tejun Heo:\n \"This fixes the possible premature superblock release on umount bug\n  mentioned during v3.5-rc1 pull request.\n\n  Originally, cgroup dentry destruction path assumed that cgroup dentry\n  didn\u0027t have any reference left after cgroup removal thus put super\n  during dentry removal.  Now that there can be lingering dentry\n  references, this led to super being put with live dentries.  This\n  patch fixes the problem by putting super ref on dentry release instead\n  of removal.\"\n\n* \u0027for-3.5-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:\n  cgroup: superblock can\u0027t be released with active dentries\n"
    },
    {
      "commit": "91c63734f6908425903aed69c04035592f18d398",
      "tree": "6790827ab915b17c63d5c39d8c72c47f3764f868",
      "parents": [
        "0ce72d4f7333248efbef1f3309770c7edb1b2625"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue May 29 15:06:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:20 2012 -0700"
      },
      "message": "kernel: cgroup: push rcu read locking from css_is_ancestor() to callsite\n\nLibrary functions should not grab locks when the callsites can do it,\neven if the lock nests like the rcu read-side lock does.\n\nPush the rcu_read_lock() from css_is_ancestor() to its single user,\nmem_cgroup_same_or_subtree() in preparation for another user that may\nalready hold the rcu read-side lock.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Tejun Heo \u003ctj@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": "fa980ca87d15bb8a1317853f257a505990f3ffde",
      "tree": "4288f6d27c8a2e30c1fa3b8a9a0f95c5fd6d48c6",
      "parents": [
        "6101167727932a929e37fb8a6eeb68bdbf54d58e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 24 08:24:39 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun May 27 17:22:56 2012 -0700"
      },
      "message": "cgroup: superblock can\u0027t be released with active dentries\n\n48ddbe1946 \"cgroup: make css-\u003erefcnt clearing on cgroup removal\noptional\" allowed a css to linger after the associated cgroup is\nremoved.  As a css holds a reference on the cgroup\u0027s dentry, it means\nthat cgroup dentries may linger for a while.\n\ncgroup_create() does grab an active reference on the superblock to\nprevent it from going away while there are !root cgroups; however, the\nreference is put from cgroup_diput() which is invoked on cgroup\nremoval, so cgroup dentries which are removed but persisting due to\nlingering csses already have released their superblock active refs\nallowing superblock to be killed while those dentries are around.\n\nGiven the right condition, this makes cgroup_kill_sb() call\nkill_litter_super() with dentries with non-zero d_count leading to\nBUG() in shrink_dcache_for_umount_subtree().\n\nFix it by adding cgroup_dops-\u003ed_release() operation and moving\ndeactivate_super() to it.  cgroup_diput() now marks dentry-\u003ed_fsdata\nwith itself if superblock should be deactivated and cgroup_d_release()\ndeactivates the superblock on dentry release.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nTested-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nLKML-Reference: \u003cCA+1xoqe5hMuxzCRhMy7J0XchDk2ZnuxOHJKikROk1-ReAzcT6g@mail.gmail.com\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "644473e9c60c1ff4f6351fed637a6e5551e3dce7",
      "tree": "10316518bedc735a2c6552886658d69dfd9f1eb0",
      "parents": [
        "fb827ec68446c83e9e8754fa9b55aed27ecc4661",
        "4b06a81f1daee668fbd6de85557bfb36dd36078f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 17:42:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 23 17:42:39 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull user namespace enhancements from Eric Biederman:\n \"This is a course correction for the user namespace, so that we can\n  reach an inexpensive, maintainable, and reasonably complete\n  implementation.\n\n  Highlights:\n   - Config guards make it impossible to enable the user namespace and\n     code that has not been converted to be user namespace safe.\n\n   - Use of the new kuid_t type ensures the if you somehow get past the\n     config guards the kernel will encounter type errors if you enable\n     user namespaces and attempt to compile in code whose permission\n     checks have not been updated to be user namespace safe.\n\n   - All uids from child user namespaces are mapped into the initial\n     user namespace before they are processed.  Removing the need to add\n     an additional check to see if the user namespace of the compared\n     uids remains the same.\n\n   - With the user namespaces compiled out the performance is as good or\n     better than it is today.\n\n   - For most operations absolutely nothing changes performance or\n     operationally with the user namespace enabled.\n\n   - The worst case performance I could come up with was timing 1\n     billion cache cold stat operations with the user namespace code\n     enabled.  This went from 156s to 164s on my laptop (or 156ns to\n     164ns per stat operation).\n\n   - (uid_t)-1 and (gid_t)-1 are reserved as an internal error value.\n     Most uid/gid setting system calls treat these value specially\n     anyway so attempting to use -1 as a uid would likely cause\n     entertaining failures in userspace.\n\n   - If setuid is called with a uid that can not be mapped setuid fails.\n     I have looked at sendmail, login, ssh and every other program I\n     could think of that would call setuid and they all check for and\n     handle the case where setuid fails.\n\n   - If stat or a similar system call is called from a context in which\n     we can not map a uid we lie and return overflowuid.  The LFS\n     experience suggests not lying and returning an error code might be\n     better, but the historical precedent with uids is different and I\n     can not think of anything that would break by lying about a uid we\n     can\u0027t map.\n\n   - Capabilities are localized to the current user namespace making it\n     safe to give the initial user in a user namespace all capabilities.\n\n  My git tree covers all of the modifications needed to convert the core\n  kernel and enough changes to make a system bootable to runlevel 1.\"\n\nFix up trivial conflicts due to nearby independent changes in fs/stat.c\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (46 commits)\n  userns:  Silence silly gcc warning.\n  cred: use correct cred accessor with regards to rcu read lock\n  userns: Convert the move_pages, and migrate_pages permission checks to use uid_eq\n  userns: Convert cgroup permission checks to use uid_eq\n  userns: Convert tmpfs to use kuid and kgid where appropriate\n  userns: Convert sysfs to use kgid/kuid where appropriate\n  userns: Convert sysctl permission checks to use kuid and kgids.\n  userns: Convert proc to use kuid/kgid where appropriate\n  userns: Convert ext4 to user kuid/kgid where appropriate\n  userns: Convert ext3 to use kuid/kgid where appropriate\n  userns: Convert ext2 to use kuid/kgid where appropriate.\n  userns: Convert devpts to use kuid/kgid where appropriate\n  userns: Convert binary formats to use kuid/kgid where appropriate\n  userns: Add negative depends on entries to avoid building code that is userns unsafe\n  userns: signal remove unnecessary map_cred_ns\n  userns: Teach inode_capable to understand inodes whose uids map to other namespaces.\n  userns: Fail exec for suid and sgid binaries with ids outside our user namespace.\n  userns: Convert stat to return values mapped from kuids and kgids\n  userns: Convert user specfied uids and gids in chown into kuids and kgid\n  userns: Use uid_eq gid_eq helpers when comparing kuids and kgids in the vfs\n  ...\n"
    },
    {
      "commit": "14a590c3f987977d7b09ec926481ee0238c08eee",
      "tree": "b06a1f674d090abde07bbaca03f53fbe3f346609",
      "parents": [
        "8751e03958f2adbfba6a0f186f4c5797c950c22a"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Mar 12 15:44:39 2012 -0700"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue May 15 14:59:30 2012 -0700"
      },
      "message": "userns: Convert cgroup permission checks to use uid_eq\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "c4c27fbdda4e8ba87806c415b6d15266b07bce4b",
      "tree": "e532518e0942a2562642744103eb64554c8abbda",
      "parents": [
        "86f82d561864e902c70282b6f17cf590c0f34691"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "mgalbraith@suse.de",
        "time": "Sat Apr 21 09:13:46 2012 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Apr 23 11:03:51 2012 -0700"
      },
      "message": "cgroups: disallow attaching kthreadd or PF_THREAD_BOUND threads\n\nAllowing kthreadd to be moved to a non-root group makes no sense, it being\na global resource, and needlessly leads unsuspecting users toward trouble.\n\n1. An RT workqueue worker thread spawned in a task group with no rt_runtime\nallocated is not schedulable.  Simple user error, but harmful to the box.\n\n2. A worker thread which acquires PF_THREAD_BOUND can never leave a cpuset,\nrendering the cpuset immortal.\n\nSave the user some unexpected trouble, just say no.\n\nSigned-off-by: Mike Galbraith \u003cmgalbraith@suse.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "86f82d561864e902c70282b6f17cf590c0f34691",
      "tree": "1f4021c8de07899152b00ddce36f09192ee78395",
      "parents": [
        "cbe128e348e5994516304f94865ff90c40c1c5ae"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 10 10:16:36 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Apr 11 09:16:48 2012 -0700"
      },
      "message": "cgroup: remove cgroup_subsys-\u003epopulate()\n\nWith memcg converted, cgroup_subsys-\u003epopulate() doesn\u0027t have any user\nleft.  Remove it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "48ddbe194623ae089cc0576e60363f2d2e85662a",
      "tree": "bf9f9fc29e28b6440c64727f5e0a57a9ccd8ec5d",
      "parents": [
        "28b4c27b8e6bb6d7ff2875281a8484f8898a87ef"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:56 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:56 2012 -0700"
      },
      "message": "cgroup: make css-\u003erefcnt clearing on cgroup removal optional\n\nCurrently, cgroup removal tries to drain all css references.  If there\nare active css references, the removal logic waits and retries\n-\u003epre_detroy() until either all refs drop to zero or removal is\ncancelled.\n\nThis semantics is unusual and adds non-trivial complexity to cgroup\ncore and IMHO is fundamentally misguided in that it couples internal\nimplementation details (references to internal data structure) with\nexternally visible operation (rmdir).  To userland, this is a behavior\npeculiarity which is unnecessary and difficult to expect (css refs is\notherwise invisible from userland), and, to policy implementations,\nthis is an unnecessary restriction (e.g. blkcg wants to hold css refs\nfor caching purposes but can\u0027t as that becomes visible as rmdir hang).\n\nUnfortunately, memcg currently depends on -\u003epre_destroy() retrials and\ncgroup removal vetoing and can\u0027t be immmediately switched to the new\nbehavior.  This patch introduces the new behavior of not waiting for\ncss refs to drain and maintains the old behavior for subsystems which\nhave __DEPRECATED_clear_css_refs set.\n\nOnce, memcg is updated, we can drop the code paths for the old\nbehavior as proposed in the following patch.  Note that the following\npatch is incorrect in that dput work item is in cgroup and may lose\nsome of dputs when multiples css\u0027s are released back-to-back, and\n__css_put() triggers check_for_release() when refcnt reaches 0 instead\nof 1; however, it shows what part can be removed.\n\n  http://thread.gmane.org/gmane.linux.kernel.containers/22559/focus\u003d75251\n\nNote that, in not-too-distant future, cgroup core will start emitting\nwarning messages for subsys which require the old behavior, so please\nget moving.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\n"
    },
    {
      "commit": "28b4c27b8e6bb6d7ff2875281a8484f8898a87ef",
      "tree": "8da3eefc6b98c46a4dbd0fd6e6d6dec6220382df",
      "parents": [
        "79578621b4847afdef48d19a28d00e3b188c37e1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:56 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:56 2012 -0700"
      },
      "message": "cgroup: use negative bias on css-\u003erefcnt to block css_tryget()\n\nWhen a cgroup is about to be removed, cgroup_clear_css_refs() is\ncalled to check and ensure that there are no active css references.\n\nThis is currently achieved by dropping the refcnt to zero iff it has\nonly the base ref.  If all css refs could be dropped to zero, ref\nclearing is successful and CSS_REMOVED is set on all css.  If not, the\nbase ref is restored.  While css ref is zero w/o CSS_REMOVED set, any\ncss_tryget() attempt on it busy loops so that they are atomic\nw.r.t. the whole css ref clearing.\n\nThis does work but dropping and re-instating the base ref is somewhat\nhairy and makes it difficult to add more logic to the put path as\nthere are two of them - the regular css_put() and the reversible base\nref clearing.\n\nThis patch updates css ref clearing such that blocking new\ncss_tryget() and putting the base ref are separate operations.\nCSS_DEACT_BIAS, defined as INT_MIN, is added to css-\u003erefcnt and\ncss_tryget() busy loops while refcnt is negative.  After all css refs\nare deactivated, if they were all one, ref clearing succeeded and\nCSS_REMOVED is set and the base ref is put using the regular\ncss_put(); otherwise, CSS_DEACT_BIAS is subtracted from the refcnts\nand the original postive values are restored.\n\ncss_refcnt() accessor which always returns the unbiased positive\nreference counts is added and used to simplify refcnt usages.  While\nat it, relocate and reformat comments in cgroup_has_css_refs().\n\nThis separates css-\u003erefcnt deactivation and putting the base ref,\nwhich enables the next patch to make ref clearing optional.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "79578621b4847afdef48d19a28d00e3b188c37e1",
      "tree": "d66c0ba245841eefa75a2f79e5cd8e2be09385eb",
      "parents": [
        "05ef1d7c4a5b6d09cadd2b8e9b3c395363d1a89c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:56 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:56 2012 -0700"
      },
      "message": "cgroup: implement cgroup_rm_cftypes()\n\nImplement cgroup_rm_cftypes() which removes an array of cftypes from a\nsubsystem.  It can be called whether the target subsys is attached or\nnot.  cgroup core will remove the specified file from all existing\ncgroups.\n\nThis will be used to improve sub-subsys modularity and will be helpful\nfor unified hierarchy.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "05ef1d7c4a5b6d09cadd2b8e9b3c395363d1a89c",
      "tree": "c63adfca7c1d6a6858cd0cecf6f4eb83775c35d8",
      "parents": [
        "f6ea93723d0049ae5fbbb5292cb10c51d7a80801"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:56 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:56 2012 -0700"
      },
      "message": "cgroup: introduce struct cfent\n\nThis patch adds cfent (cgroup file entry) which is the association\nbetween a cgroup and a file.  This is in-cgroup representation of\nfiles under a cgroup directory.  This simplifies walking walking\ncgroup files and thus cgroup_clear_directory(), which is now\nimplemented in two parts - cgroup_rm_file() and a loop around it.\n\ncgroup_rm_file() will be used to implement cftype removal and cfent is\nscheduled to serve cgroup specific per-file data (e.g. for sysfs-like\n\"sever\" semantics).\n\nv2: - cfe was freed from cgroup_rm_file() which led to use-after-free\n      if the file had openers at the time of removal.  Moved to\n      cgroup_diput().\n\n    - cgroup_clear_directory() triggered WARN_ON_ONCE() if d_subdirs\n      wasn\u0027t empty after removing all files.  This triggered\n      spuriously if some files were open during directory clearing.\n      Removed.\n\nv3: - In cgroup_diput(), WARN_ONCE(!list_empty(\u0026cfe-\u003enode)) could be\n      spuriously triggered for root cgroups because they don\u0027t go\n      through cgroup_clear_directory() on unmount.  Don\u0027t trigger WARN\n      for root cgroups.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\n"
    },
    {
      "commit": "f6ea93723d0049ae5fbbb5292cb10c51d7a80801",
      "tree": "a4e126269dadbd627b13d896c4494aa2ef0046c1",
      "parents": [
        "db0416b64977cb0f382175608286cc80c7573e38"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:55 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:55 2012 -0700"
      },
      "message": "cgroup: relocate __d_cgrp() and __d_cft()\n\nMove the two macros upwards as they\u0027ll be used earlier in the file.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "db0416b64977cb0f382175608286cc80c7573e38",
      "tree": "a244be0b7e7467ed89c390997aec6b176de71140",
      "parents": [
        "6bc103498f5fe512928496fc7802d639cc2d1d20"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:55 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:55 2012 -0700"
      },
      "message": "cgroup: remove cgroup_add_file[s]()\n\nNo controller is using cgroup_add_files[s]().  Unexport them, and\nconvert cgroup_add_files() to handle NULL entry terminated array\ninstead of taking count explicitly and continue creation on failure\nfor internal use.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "4baf6e33251b37f111e21289f8ee71fe4cce236e",
      "tree": "7decc386a60679fd2696041810cf331c0daf1f41",
      "parents": [
        "676f7c8f84d15e94065841529016da5ab92e901b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:55 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:55 2012 -0700"
      },
      "message": "cgroup: convert all non-memcg controllers to the new cftype interface\n\nConvert debug, freezer, cpuset, cpu_cgroup, cpuacct, net_prio, blkio,\nnet_cls and device controllers to use the new cftype based interface.\nTermination entry is added to cftype arrays and populate callbacks are\nreplaced with cgroup_subsys-\u003ebase_cftypes initializations.\n\nThis is functionally identical transformation.  There shouldn\u0027t be any\nvisible behavior change.\n\nmemcg is rather special and will be converted separately.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cpaul@paulmenage.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\n"
    },
    {
      "commit": "6e6ff25bd548a0c5bf5163e4f63e2793dcefbdcb",
      "tree": "f2c3adbac3286559e88771c714333733e0422760",
      "parents": [
        "8e3f6541d45e1a002801e56a19530a90f775deba"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:55 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:55 2012 -0700"
      },
      "message": "cgroup: merge cft_release_agent cftype array into the base files array\n\nNow that cftype can express whether a file should only be on root,\ncft_release_agent can be merged into the base files cftypes array.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "8e3f6541d45e1a002801e56a19530a90f775deba",
      "tree": "5342d7afce759252f5204c7e33283879cca0490d",
      "parents": [
        "b0ca5a84fc3ad8f75bb2b7ac3dc6a77151cd3906"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:55 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:55 2012 -0700"
      },
      "message": "cgroup: implement cgroup_add_cftypes() and friends\n\nCurrently, cgroup directories are populated by subsys-\u003epopulate()\ncallback explicitly creating files on each cgroup creation.  This\nlevel of flexibility isn\u0027t needed or desirable.  It provides largely\nunused flexibility which call for abuses while severely limiting what\nthe core layer can do through the lack of structure and conventions.\n\nPer each cgroup file type, the only distinction that cgroup users is\nmaking is whether a cgroup is root or not, which can easily be\nexpressed with flags.\n\nThis patch introduces cgroup_add_cftypes().  These deal with cftypes\ninstead of individual files - controllers indicate that certain types\nof files exist for certain subsystem.  Newly added CFTYPE_*_ON_ROOT\nflags indicate whether a cftype should be excluded or created only on\nthe root cgroup.\n\ncgroup_add_cftypes() can be called any time whether the target\nsubsystem is currently attached or not.  cgroup core will create files\non the existing cgroups as necessary.\n\nAlso, cgroup_subsys-\u003ebase_cftypes is added to ease registration of the\nbase files for the subsystem.  If non-NULL on subsys init, the cftypes\npointed to by -\u003ebase_cftypes are automatically registered on subsys\ninit / load.\n\nFurther patches will convert the existing users and remove the file\nbased interface.  Note that this interface allows dynamic addition of\nfiles to an active controller.  This will be used for sub-controller\nmodularity and unified hierarchy in the longer term.\n\nThis patch implements the new mechanism but doesn\u0027t apply it to any\nuser.\n\nv2: replaced DECLARE_CGROUP_CFTYPES[_COND]() with\n    cgroup_subsys-\u003ebase_cftypes, which works better for cgroup_subsys\n    which is loaded as module.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "b0ca5a84fc3ad8f75bb2b7ac3dc6a77151cd3906",
      "tree": "87dcdec8c3104ed00b34518b4dc1837e8c03d837",
      "parents": [
        "ff4c8d503e2583b485da46d0ec3dcc29639ab889"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:54 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:54 2012 -0700"
      },
      "message": "cgroup: build list of all cgroups under a given cgroupfs_root\n\nBuild a list of all cgroups anchored at cgroupfs_root-\u003eallcg_list and\ngoing through cgroup-\u003eallcg_node.  The list is protected by\ncgroup_mutex and will be used to improve cgroup file handling.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "ff4c8d503e2583b485da46d0ec3dcc29639ab889",
      "tree": "f4f03ab7e743f96e9b8e7c178b61554e3d591d52",
      "parents": [
        "8b5a5a9dbca914d1f7d70276024d1525a3c94081"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:54 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:54 2012 -0700"
      },
      "message": "cgroup: move cgroup_clear_directory() call out of cgroup_populate_dir()\n\ncgroup_populate_dir() currently clears all files and then repopulate\nthe directory; however, the clearing part is only useful when it\u0027s\ncalled from cgroup_remount().  Relocate the invocation to\ncgroup_remount().\n\nThis is to prepare for further cgroup file handling updates.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "8b5a5a9dbca914d1f7d70276024d1525a3c94081",
      "tree": "15667c2e0da1331d0253dcc2598bc64983fa539d",
      "parents": [
        "dd775ae2549217d3ae09363e3edb305d0fa19928"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:54 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 01 12:09:54 2012 -0700"
      },
      "message": "cgroup: deprecate remount option changes\n\nThis patch marks the following features for deprecation.\n\n* Rebinding subsys by remount: Never reached useful state - only works\n  on empty hierarchies.\n\n* release_agent update by remount: release_agent itself will be\n  replaced with conventional fsnotify notification.\n\nv2: Lennart pointed out that \"name\u003d\" is necessary for mounts w/o any\n    controller attached.  Drop \"name\u003d\" deprecation.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Lennart Poettering \u003cmzxreary@0pointer.de\u003e\n"
    },
    {
      "commit": "8f121918f2e49f852de1acdc5255cc1ef440d85b",
      "tree": "552dbbc407189e45b6941cf117b39681dc1f7e40",
      "parents": [
        "ad50c15919e8aca7ea30f9dcf4bac52448c9ab46"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Mar 29 22:03:33 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Mar 29 22:03:33 2012 -0700"
      },
      "message": "cgroup: cgroup_attach_task() could return -errno after success\n\n61d1d219c4 \"cgroup: remove extra calls to find_existing_css_set\" made\ncgroup_task_migrate() return void.  An unfortunate side effect was\nthat cgroup_attach_task() was depending on that function\u0027s return\nvalue to clear its @retval on the success path.  On cgroup mounts\nwithout any subsystem with -\u003ecan_attach() callback,\ncgroup_attach_task() ended up returning @retval without initializing\nit on success.\n\nFor some reason, gcc failed to warn about it and it didn\u0027t cause\ncgroup_attach_task() to return non-zero value in many cases, probably\ndue to difference in register allocation.  When the problem\nmaterializes, systemd fails to populate /systemd cgroup mount and\nfails to boot.\n\nFix it by initializing @retval to zero on declaration.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nLKML-Reference: \u003calpine.LNX.2.00.1203282354440.25526@pobox.suse.cz\u003e\nReviewed-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "95211279c5ad00a317c98221d7e4365e02f20836",
      "tree": "2ddc8625378d2915b8c96392f3cf6663b705ed55",
      "parents": [
        "5375871d432ae9fc581014ac117b96aaee3cd0c7",
        "12724850e8064f64b6223d26d78c0597c742c65a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:04:48 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:04:48 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge first batch of patches from Andrew Morton:\n \"A few misc things and all the MM queue\"\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (92 commits)\n  memcg: avoid THP split in task migration\n  thp: add HPAGE_PMD_* definitions for !CONFIG_TRANSPARENT_HUGEPAGE\n  memcg: clean up existing move charge code\n  mm/memcontrol.c: remove unnecessary \u0027break\u0027 in mem_cgroup_read()\n  mm/memcontrol.c: remove redundant BUG_ON() in mem_cgroup_usage_unregister_event()\n  mm/memcontrol.c: s/stealed/stolen/\n  memcg: fix performance of mem_cgroup_begin_update_page_stat()\n  memcg: remove PCG_FILE_MAPPED\n  memcg: use new logic for page stat accounting\n  memcg: remove PCG_MOVE_LOCK flag from page_cgroup\n  memcg: simplify move_account() check\n  memcg: remove EXPORT_SYMBOL(mem_cgroup_update_page_stat)\n  memcg: kill dead prev_priority stubs\n  memcg: remove PCG_CACHE page_cgroup flag\n  memcg: let css_get_next() rely upon rcu_read_lock()\n  cgroup: revert ss_id_lock to spinlock\n  idr: make idr_get_next() good for rcu_read_lock()\n  memcg: remove unnecessary thp check in page stat accounting\n  memcg: remove redundant returns\n  memcg: enum lru_list lru\n  ...\n"
    },
    {
      "commit": "ca464d69b19120a826aa2534de2511a6f542edf5",
      "tree": "092582419a30825b8483640856483ea8ee56cf81",
      "parents": [
        "42aee6c495e07dba7410b863a360db6bb9ec6d66"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Wed Mar 21 16:34:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:01 2012 -0700"
      },
      "message": "memcg: let css_get_next() rely upon rcu_read_lock()\n\nRemove lock and unlock around css_get_next()\u0027s call to idr_get_next().\nmemcg iterators (only users of css_get_next) already did rcu_read_lock(),\nand its comment demands that; but add a WARN_ON_ONCE to make sure of it.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Tejun Heo \u003ctj@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": "42aee6c495e07dba7410b863a360db6bb9ec6d66",
      "tree": "d014b2b5c7aa9d1a1f13686fa06699f9f734ee1c",
      "parents": [
        "9f7de8275b46d9d11b1505adbfe6c2bb48df4741"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Wed Mar 21 16:34:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:01 2012 -0700"
      },
      "message": "cgroup: revert ss_id_lock to spinlock\n\nCommit c1e2ee2dc436 (\"memcg: replace ss-\u003eid_lock with a rwlock\") has now\nbeen seen to cause the unfair behavior we should have expected from\nconverting a spinlock to an rwlock: softlockup in cgroup_mkdir(), whose\nget_new_cssid() is waiting for the wlock, while there are 19 tasks using\nthe rlock in css_get_next() to get on with their memcg workload (in an\nartificial test, admittedly).  Yet lib/idr.c was made suitable for RCU\nway back: revert that commit, restoring ss-\u003eid_lock to a spinlock.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Tejun Heo \u003ctj@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": "e2a0883e4071237d09b604a342c28b96b44a04b3",
      "tree": "aa56f4d376b5eb1c32358c19c2669c2a94e0e1fd",
      "parents": [
        "3a990a52f9f25f45469e272017a31e7a3fda60ed",
        "07c0c5d8b8c122b2f2df9ee574ac3083daefc981"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:36:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:36:41 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs pile 1 from Al Viro:\n \"This is _not_ all; in particular, Miklos\u0027 and Jan\u0027s stuff is not there\n  yet.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (64 commits)\n  ext4: initialization of ext4_li_mtx needs to be done earlier\n  debugfs-related mode_t whack-a-mole\n  hfsplus: add an ioctl to bless files\n  hfsplus: change finder_info to u32\n  hfsplus: initialise userflags\n  qnx4: new helper - try_extent()\n  qnx4: get rid of qnx4_bread/qnx4_getblk\n  take removal of PF_FORKNOEXEC to flush_old_exec()\n  trim includes in inode.c\n  um: uml_dup_mmap() relies on -\u003emmap_sem being held, but activate_mm() doesn\u0027t hold it\n  um: embed -\u003estub_pages[] into mmu_context\n  gadgetfs: list_for_each_safe() misuse\n  ocfs2: fix leaks on failure exits in module_init\n  ecryptfs: make register_filesystem() the last potential failure exit\n  ntfs: forgets to unregister sysctls on register_filesystem() failure\n  logfs: missing cleanup on register_filesystem() failure\n  jfs: mising cleanup on register_filesystem() failure\n  make configfs_pin_fs() return root dentry on success\n  configfs: configfs_create_dir() has parent dentry in dentry-\u003ed_parent\n  configfs: sanitize configfs_create()\n  ...\n"
    },
    {
      "commit": "48fde701aff662559b38d9a609574068f22d00fe",
      "tree": "aa6b203dc671b51d58575b65eb08310ff8309b60",
      "parents": [
        "6b4231e2f92adbcf96fb2a3fa751d7ca0a61b21f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 08 22:15:13 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:35 2012 -0400"
      },
      "message": "switch open-coded instances of d_make_root() to new helper\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3ce3230a0cff484e5130153f244d4fb8a56b3a8b",
      "tree": "6ee374618c9edacefd2e9d0f912c651bd5f12cb7",
      "parents": [
        "9a4b430451bb6d8d6b7dcdfbee0e1330b7c475a6"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Feb 08 03:37:27 2012 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 21 09:46:47 2012 -0800"
      },
      "message": "cgroup: Walk task list under tasklist_lock in cgroup_enable_task_cg_list\n\nWalking through the tasklist in cgroup_enable_task_cg_list() inside\nan RCU read side critical section is not enough because:\n\n- RCU is not (yet) safe against while_each_thread()\n\n- If we use only RCU, a forking task that has passed cgroup_post_fork()\n  without seeing use_task_css_set_links \u003d\u003d 1 is not guaranteed to have\n  its child immediately visible in the tasklist if we walk through it\n  remotely with RCU. In this case it will be missing in its css_set\u0027s\n  task list.\n\nThus we need to traverse the list (unfortunately) under the\ntasklist_lock. It makes us safe against while_each_thread() and also\nmake sure we see all forked task that have been added to the tasklist.\n\nAs a secondary effect, reading and writing use_task_css_set_links are\nnow well ordered against tasklist traversing and modification. The new\nlayout is:\n\nCPU 0                                      CPU 1\n\nuse_task_css_set_links \u003d 1                write_lock(tasklist_lock)\nread_lock(tasklist_lock)                  add task to tasklist\ndo_each_thread() {                        write_unlock(tasklist_lock)\n\tadd thread to css set links       if (use_task_css_set_links)\n} while_each_thread()                         add thread to css set links\nread_unlock(tasklist_lock)\n\nIf CPU 0 traverse the list after the task has been added to the tasklist\nthen it is correctly added to the css set links. OTOH if CPU 0 traverse\nthe tasklist before the new task had the opportunity to be added to the\ntasklist because it was too early in the fork process, then CPU 1\ncatches up and add the task to the css set links after it added the task\nto the tasklist. The right value of use_task_css_set_links is guaranteed\nto be visible from CPU 1 due to the LOCK/UNLOCK implicit barrier properties:\nthe read_unlock on CPU 0 makes the write on use_task_css_set_links happening\nand the write_lock on CPU 1 make the read of use_task_css_set_links that comes\nafterward to return the correct value.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "9a4b430451bb6d8d6b7dcdfbee0e1330b7c475a6",
      "tree": "aa9a075b658a5045779e6d2463715126263f21dc",
      "parents": [
        "761b3ef50e1c2649cffbfa67a4dcb2dcdb7982ed"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Feb 08 03:37:26 2012 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 21 09:46:43 2012 -0800"
      },
      "message": "cgroup: Remove wrong comment on cgroup_enable_task_cg_list()\n\nRemove the stale comment about RCU protection. Many callers\n(all of them?) of cgroup_enable_task_cg_list() don\u0027t seem\nto be in an RCU read side critical section. Besides, RCU is\nnot helpful to protect against while_each_thread().\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "761b3ef50e1c2649cffbfa67a4dcb2dcdb7982ed",
      "tree": "67ab6a9a2520811c9c0b4d70d1c19b4bfca16237",
      "parents": [
        "61d1d219c4c0761059236a46867bc49943c4d29d"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jan 31 13:47:36 2012 +0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 02 09:20:22 2012 -0800"
      },
      "message": "cgroup: remove cgroup_subsys argument from callbacks\n\nThe argument is not used at all, and it\u0027s not necessary, because\na specific callback handler of course knows which subsys it\nbelongs to.\n\nNow only -\u003epupulate() takes this argument, because the handlers of\nthis callback always call cgroup_add_file()/cgroup_add_files().\n\nSo we reduce a few lines of code, though the shrinking of object size\nis minimal.\n\n 16 files changed, 113 insertions(+), 162 deletions(-)\n\n   text    data     bss     dec     hex filename\n5486240  656987 7039960 13183187         c928d3 vmlinux.o.orig\n5486170  656987 7039960 13183117         c9288d vmlinux.o\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "61d1d219c4c0761059236a46867bc49943c4d29d",
      "tree": "3803019bf5a294644bc3effcd95dac928ead587d",
      "parents": [
        "fb5d2b4cfc24963d0e8a7df57de1ecffa10a04cf"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Mon Jan 30 12:51:56 2012 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Jan 30 13:01:39 2012 -0800"
      },
      "message": "cgroup: remove extra calls to find_existing_css_set\n\nIn cgroup_attach_proc, we indirectly call find_existing_css_set 3\ntimes. It is an expensive call so we want to call it a minimum\nof times. This patch only calls it once and stores the result so\nthat it can be used later on when we call cgroup_task_migrate.\n\nThis required modifying cgroup_task_migrate to take the new css_set\n(which we obtained from find_css_set) as a parameter. The nice side\neffect of this is that cgroup_task_migrate is now identical for\ncgroup_attach_task and cgroup_attach_proc. It also now returns a\nvoid since it can never fail.\n\nChanges in V5:\n* https://lkml.org/lkml/2012/1/20/344 (Tejun Heo)\n  * Remove css_set_refs\nChanges in V4:\n* https://lkml.org/lkml/2011/12/22/421 (Li Zefan)\n  * Avoid GFP_KERNEL (sleep) in rcu_read_lock by getting css_set in\n    a separate loop not under an rcu_read_lock\nChanges in V3:\n* https://lkml.org/lkml/2011/12/22/13 (Li Zefan)\n  * Fixed earlier bug by creating a seperate patch to remove tasklist_lock\nChanges in V2:\n* https://lkml.org/lkml/2011/12/20/372 (Tejun Heo)\n  * Move find_css_set call into loop which creates the flex array\n* Author\n  * Kill css_set_refs and use group_size instead\n  * Fix an off-by-one error in counting css_set refs\n  * Add a retval check in out_list_teardown\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: containers@lists.linux-foundation.org\nCc: cgroups@vger.kernel.org\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Paul Menage \u003cpaul@paulmenage.org\u003e\n"
    },
    {
      "commit": "fb5d2b4cfc24963d0e8a7df57de1ecffa10a04cf",
      "tree": "4603496bbe19740067195bf0669f7be484dbc950",
      "parents": [
        "b78949ebfb563c29808a9d0a772e3adb5561bc80"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Tue Jan 03 21:18:31 2012 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jan 20 15:58:13 2012 -0800"
      },
      "message": "cgroup: replace tasklist_lock with rcu_read_lock\n\nWe can replace the tasklist_lock in cgroup_attach_proc with an\nrcu_read_lock().\n\nChanges in V4:\n* https://lkml.org/lkml/2011/12/23/284 (Frederic Weisbecker)\n  * Minimize size of rcu_read_lock critical section\n  * Add comment\n* https://lkml.org/lkml/2011/12/26/136 (Li Zefan)\n  * Split into two patches\nChanges in V3:\n* https://lkml.org/lkml/2011/12/22/419 (Frederic Weisbecker)\n  * Add an rcu_read_lock to protect against exit\nChanges in V2:\n* https://lkml.org/lkml/2011/12/22/86 (Tejun Heo)\n  * Use a goto instead of returning -EAGAIN\n\nSuggested-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: containers@lists.linux-foundation.org\nCc: cgroups@vger.kernel.org\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Paul Menage \u003cpaul@paulmenage.org\u003e\n"
    },
    {
      "commit": "b78949ebfb563c29808a9d0a772e3adb5561bc80",
      "tree": "d5b473db418a7480d314ffe36d428290d3603bfc",
      "parents": [
        "245282557c49754af3dbcc732316e814340d6bce"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Tue Jan 03 21:18:30 2012 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jan 20 15:58:13 2012 -0800"
      },
      "message": "cgroup: simplify double-check locking in cgroup_attach_proc\n\nTo keep the complexity of the double-check locking in one place, move\nthe thread_group_leader check up into attach_task_by_pid().  This\nallows us to use a goto instead of returning -EAGAIN.\n\nWhile at it, convert a couple of returns to gotos and use rcu for the\n!pid case also in order to simplify the logic.\n\nChanges in V2:\n* https://lkml.org/lkml/2011/12/22/86 (Tejun Heo)\n  * Use a goto instead of returning -EAGAIN\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: containers@lists.linux-foundation.org\nCc: cgroups@vger.kernel.org\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Paul Menage \u003cpaul@paulmenage.org\u003e\n"
    },
    {
      "commit": "245282557c49754af3dbcc732316e814340d6bce",
      "tree": "e790dad8b26f273a3509d0a86fb4eec9589e54e7",
      "parents": [
        "a63b9072ea4e32c1fde8b783ccf6e4288414660b"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Jan 20 11:58:43 2012 +0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jan 20 09:30:08 2012 -0800"
      },
      "message": "cgroup: move struct cgroup_pidlist out from the header file\n\nIt\u0027s internally used only.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "db0c2bf69aa095d4a6de7b1145f29fe9a7c0f6a3",
      "tree": "8f38957c01b18edddd44d49ecc3beeac08a20b4e",
      "parents": [
        "ac69e0928054ff29a5049902fb477f9c7605c773",
        "0d19ea866562e46989412a0676412fa0983c9ce7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 12:59:24 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 12:59:24 2012 -0800"
      },
      "message": "Merge branch \u0027for-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup\n\n* \u0027for-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (21 commits)\n  cgroup: fix to allow mounting a hierarchy by name\n  cgroup: move assignement out of condition in cgroup_attach_proc()\n  cgroup: Remove task_lock() from cgroup_post_fork()\n  cgroup: add sparse annotation to cgroup_iter_start() and cgroup_iter_end()\n  cgroup: mark cgroup_rmdir_waitq and cgroup_attach_proc() as static\n  cgroup: only need to check oldcgrp\u003d\u003dnewgrp once\n  cgroup: remove redundant get/put of task struct\n  cgroup: remove redundant get/put of old css_set from migrate\n  cgroup: Remove unnecessary task_lock before fetching css_set on migration\n  cgroup: Drop task_lock(parent) on cgroup_fork()\n  cgroups: remove redundant get/put of css_set from css_set_check_fetched()\n  resource cgroups: remove bogus cast\n  cgroup: kill subsys-\u003ecan_attach_task(), pre_attach() and attach_task()\n  cgroup, cpuset: don\u0027t use ss-\u003epre_attach()\n  cgroup: don\u0027t use subsys-\u003ecan_attach_task() or -\u003eattach_task()\n  cgroup: introduce cgroup_taskset and use it in subsys-\u003ecan_attach(), cancel_attach() and attach()\n  cgroup: improve old cgroup handling in cgroup_attach_proc()\n  cgroup: always lock threadgroup during migration\n  threadgroup: extend threadgroup_lock() to cover exit and exec\n  threadgroup: rename signal-\u003ethreadgroup_fork_lock to -\u003egroup_rwsem\n  ...\n\nFix up conflict in kernel/cgroup.c due to commit e0197aae59e5: \"cgroups:\nfix a css_set not found bug in cgroup_attach_proc\" that already\nmentioned that the bug is fixed (differently) in Tejun\u0027s cgroup\npatchset. This one, in other words.\n"
    },
    {
      "commit": "34c80b1d93e6e20ca9dea0baf583a5b5510d92d4",
      "tree": "7dcbf0a4e09464247e6992c8f44fcc872867bd3a",
      "parents": [
        "a6322de67b58a00e3a783ad9c87c2a11b2d67b47"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 08 21:32:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:19:54 2012 -0500"
      },
      "message": "vfs: switch -\u003eshow_options() to struct dentry *\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0d19ea866562e46989412a0676412fa0983c9ce7",
      "tree": "335439bc9d13da86a7b6955907a92ddab03ceb57",
      "parents": [
        "305f3c8b20ba1ca94829329acdbf22e689304dba"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Dec 27 14:25:55 2011 +0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 05 09:59:46 2012 -0800"
      },
      "message": "cgroup: fix to allow mounting a hierarchy by name\n\nIf we mount a hierarchy with a specified name, the name is unique,\nand we can use it to mount the hierarchy without specifying its\nset of subsystem names. This feature is documented is\nDocumentation/cgroups/cgroups.txt section 2.3\n\nHere\u0027s an example:\n\n\t# mount -t cgroup -o cpuset,name\u003dmyhier xxx /cgroup1\n\t# mount -t cgroup -o name\u003dmyhier xxx /cgroup2\n\nBut it was broken by commit 32a8cf235e2f192eb002755076994525cdbaa35a\n(cgroup: make the mount options parsing more accurate)\n\nThis fixes the regression.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "305f3c8b20ba1ca94829329acdbf22e689304dba",
      "tree": "fdf794766dfba0393324f3c79a6f642dda328042",
      "parents": [
        "7e3aa30ac8c904a706518b725c451bb486daaae9"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Wed Jan 04 10:24:29 2012 +0300"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Jan 04 07:37:48 2012 -0800"
      },
      "message": "cgroup: move assignement out of condition in cgroup_attach_proc()\n\nGcc complains about this: \"kernel/cgroup.c:2179:4: warning: suggest\nparentheses around assignment used as truth value [-Wparentheses]\"\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "a5e7ed3287e45f2eafbcf9e7e6fdc5a0191acf40",
      "tree": "4bc526f45eb2e9ab01beca0207f8633a19b963b8",
      "parents": [
        "f9ec80061af2116e9b6298a6334a6f288d7ea878"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:55:55 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:55:03 2012 -0500"
      },
      "message": "cgroup: propagate mode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c",
      "tree": "4ee4e584bc9a67f3ec14ce159d2d7d4a27e68d4a",
      "parents": [
        "8208a22bb8bd3c52ef634b4ff194f14892ab1713"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:41:39 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch vfs_mkdir() and -\u003emkdir() to umode_t\n\nvfs_mkdir() gets int, but immediately drops everything that might not\nfit into umode_t and that\u0027s the only caller of -\u003emkdir()...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7e3aa30ac8c904a706518b725c451bb486daaae9",
      "tree": "1a6ad0678271d1cba5eba2fcafcbfa71b4e4c66d",
      "parents": [
        "c6ca57500c23d57a4ccec9874b6a3c99c297e1b5"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Dec 23 04:25:23 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Dec 27 09:05:20 2011 -0800"
      },
      "message": "cgroup: Remove task_lock() from cgroup_post_fork()\n\ncgroup_post_fork() is protected between threadgroup_change_begin()\nand threadgroup_change_end() against concurrent changes of the\nchild\u0027s css_set in cgroup_task_migrate(). Also the child can\u0027t\nexit and call cgroup_exit() at this stage, this means it\u0027s css_set\ncan\u0027t be changed with init_css_set concurrently.\n\nFor these reasons, we don\u0027t need to hold task_lock() on the child\nbecause it\u0027s css_set can only remain stable in this place.\n\nLet\u0027s remove the lock there.\n\nv2: Update comment to explain that we are safe against\ncgroup_exit()\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Containers \u003ccontainers@lists.linux-foundation.org\u003e\nCc: Cgroups \u003ccgroups@vger.kernel.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Paul Menage \u003cpaul@paulmenage.org\u003e\nCc: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\n"
    },
    {
      "commit": "c6ca57500c23d57a4ccec9874b6a3c99c297e1b5",
      "tree": "05de5a919fba42da5e537254b1d654ae1bec5b16",
      "parents": [
        "1c6c3fad81787e8cb4c85ddfd573b0d8442fe630"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Tue Dec 27 07:46:26 2011 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Dec 27 08:51:47 2011 -0800"
      },
      "message": "cgroup: add sparse annotation to cgroup_iter_start() and cgroup_iter_end()\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "1c6c3fad81787e8cb4c85ddfd573b0d8442fe630",
      "tree": "12de25ab4ede17d8cd35885271064d6567c683c1",
      "parents": [
        "892a2b90ba15cb7dbee40979f23fdb492913abf8"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Tue Dec 27 07:46:25 2011 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Dec 27 08:51:46 2011 -0800"
      },
      "message": "cgroup: mark cgroup_rmdir_waitq and cgroup_attach_proc() as static\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "892a2b90ba15cb7dbee40979f23fdb492913abf8",
      "tree": "db1cb827649a846b84e9c5da03d2b2cf4aedc656",
      "parents": [
        "b07ef7741122a83575499c11417e514877941e76"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Wed Dec 21 20:18:37 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 22 07:32:57 2011 -0800"
      },
      "message": "cgroup: only need to check oldcgrp\u003d\u003dnewgrp once\n\nIn cgroup_attach_proc it is now sufficient to only check that\noldcgrp\u003d\u003dnewcgrp once. Now that we are using threadgroup_lock()\nduring the migrations, oldcgrp will not change.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: containers@lists.linux-foundation.org\nCc: cgroups@vger.kernel.org\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Paul Menage \u003cpaul@paulmenage.org\u003e\n"
    },
    {
      "commit": "b07ef7741122a83575499c11417e514877941e76",
      "tree": "ba7fa1298320cce6ffef59e7865ef4fecbd23af1",
      "parents": [
        "026085ef5ae07c3197f2baacc091ce067b86ed11"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Wed Dec 21 20:18:36 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 22 07:32:57 2011 -0800"
      },
      "message": "cgroup: remove redundant get/put of task struct\n\nthreadgroup_lock() guarantees that the target threadgroup will\nremain stable - no new task will be added, no new PF_EXITING\nwill be set and exec won\u0027t happen.\n\nChanges in V2:\n* https://lkml.org/lkml/2011/12/20/369 (Tejun Heo)\n  * Undo incorrect removal of get/put from attach_task_by_pid()\n* Author\n  * Remove a comment which is made stale by this change\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: containers@lists.linux-foundation.org\nCc: cgroups@vger.kernel.org\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Paul Menage \u003cpaul@paulmenage.org\u003e\n"
    },
    {
      "commit": "026085ef5ae07c3197f2baacc091ce067b86ed11",
      "tree": "0497b6414f79efff5b1ba855ddae70a2d850a2b4",
      "parents": [
        "c84cdf75ccb2845f690579e838f13f7e744e3d23"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Wed Dec 21 20:18:35 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 22 07:32:57 2011 -0800"
      },
      "message": "cgroup: remove redundant get/put of old css_set from migrate\n\nWe can now assume that the css_set reference held by the task\nwill not go away for an exiting task. PF_EXITING state can be\ntrusted throughout migration by checking it after locking\nthreadgroup.\n\nChanges in V4:\n* https://lkml.org/lkml/2011/12/20/368 (Tejun Heo)\n  * Fix typo in commit message\n  * Undid the rename of css_set_check_fetched\n* https://lkml.org/lkml/2011/12/20/427 (Li Zefan)\n  * Fix comment in cgroup_task_migrate()\nChanges in V3:\n* https://lkml.org/lkml/2011/12/20/255 (Frederic Weisbecker)\n  * Fixed to put error in retval\nChanges in V2:\n* https://lkml.org/lkml/2011/12/19/289 (Tejun Heo)\n  * Updated commit message\n\n-tj: removed stale patch description about dropped function rename.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: containers@lists.linux-foundation.org\nCc: cgroups@vger.kernel.org\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Paul Menage \u003cpaul@paulmenage.org\u003e\n"
    },
    {
      "commit": "c84cdf75ccb2845f690579e838f13f7e744e3d23",
      "tree": "a94bd69e84e7996852e1973c75fe11a2b0f1a42d",
      "parents": [
        "7e381b0eb1e1a9805c37335562e8dc02e7d7848c"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Dec 21 20:03:18 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Dec 21 11:15:01 2011 -0800"
      },
      "message": "cgroup: Remove unnecessary task_lock before fetching css_set on migration\n\nWhen we fetch the css_set of the tasks on cgroup migration, we don\u0027t need\nanymore to synchronize against cgroup_exit() that could swap the old one\nwith init_css_set. Now that we are using threadgroup_lock() during\nthe migrations, we don\u0027t need to worry about it anymore.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nReviewed-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Containers \u003ccontainers@lists.linux-foundation.org\u003e\nCc: Cgroups \u003ccgroups@vger.kernel.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Paul Menage \u003cpaul@paulmenage.org\u003e\n"
    },
    {
      "commit": "7e381b0eb1e1a9805c37335562e8dc02e7d7848c",
      "tree": "766a7e7dad168f93a0159114795277dc22920e01",
      "parents": [
        "29e21368b9baf9c4b25060d65062da2dda926c70"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Dec 21 20:03:19 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Dec 21 11:15:00 2011 -0800"
      },
      "message": "cgroup: Drop task_lock(parent) on cgroup_fork()\n\nWe don\u0027t need to hold the parent task_lock() on the\nparent in cgroup_fork() because we are already synchronized\nagainst the two places that may change the parent css_set\nconcurrently:\n\n- cgroup_exit(), but the parent obviously can\u0027t exit concurrently\n- cgroup migration: we are synchronized against threadgroup_lock()\n\nSo we can safely remove the task_lock() there.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Containers \u003ccontainers@lists.linux-foundation.org\u003e\nCc: Cgroups \u003ccgroups@vger.kernel.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Paul Menage \u003cpaul@paulmenage.org\u003e\nCc: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\n"
    },
    {
      "commit": "29e21368b9baf9c4b25060d65062da2dda926c70",
      "tree": "eb0d51c03f63b78317dbe329245ce7e40cb2261d",
      "parents": [
        "52dcf8a1f8ac09b6ea21266ebdc4db6d52eea1fc"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Thu Dec 15 14:21:26 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Dec 19 09:14:30 2011 -0800"
      },
      "message": "cgroups: remove redundant get/put of css_set from css_set_check_fetched()\n\nWe already have a reference to all elements in newcg_list.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: containers@lists.linux-foundation.org\nCc: cgroups@vger.kernel.org\nCc: Paul Menage \u003cpaul@paulmenage.org\u003e\n"
    },
    {
      "commit": "e0197aae59e55c06db172bfbe1a1cdb8c0e1cab3",
      "tree": "c3b36f2adc445893166bc5caddb3d26c05611a9a",
      "parents": [
        "390f998509bf049019df0b078c0a6606e0d57fb4"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Thu Dec 15 11:36:43 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Dec 19 09:09:09 2011 -0800"
      },
      "message": "cgroups: fix a css_set not found bug in cgroup_attach_proc\n\nThere is a BUG when migrating a PF_EXITING proc. Since css_set_prefetch()\nis not called for the PF_EXITING case, find_existing_css_set() will return\nNULL inside cgroup_task_migrate() causing a BUG.\n\nThis bug is easy to reproduce. Create a zombie and echo its pid to\ncgroup.procs.\n\n$ cat zombie.c\n\\#include \u003cunistd.h\u003e\n\nint main()\n{\n  if (fork())\n      pause();\n  return 0;\n}\n$\n\nWe are hitting this bug pretty regularly on ChromeOS.\n\nThis bug is already fixed by Tejun Heo\u0027s cgroup patchset which is\ntargetted for the next merge window:\n\nhttps://lkml.org/lkml/2011/11/1/356\n\nI\u0027ve create a smaller patch here which just fixes this bug so that a\nfix can be merged into the current release and stable.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nDownstream-Bug-Report: http://crosbug.com/23953\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: containers@lists.linux-foundation.org\nCc: cgroups@vger.kernel.org\nCc: stable@kernel.org\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Paul Menage \u003cpaul@paulmenage.org\u003e\nCc: Olof Johansson \u003colofj@chromium.org\u003e\n"
    },
    {
      "commit": "494c167cf76d02000adf740c215adc69a824ecc9",
      "tree": "bf7cdf462b62ebf099b965f7bea503df30918c17",
      "parents": [
        "94196f51c1ee5bbad674de28c682b17d78adb8e6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Dec 12 18:12:22 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Dec 12 18:12:22 2011 -0800"
      },
      "message": "cgroup: kill subsys-\u003ecan_attach_task(), pre_attach() and attach_task()\n\nThese three methods are no longer used.  Kill them.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Paul Menage \u003cpaul@paulmenage.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "2f7ee5691eecb67c8108b92001a85563ea336ac5",
      "tree": "18cf60ea8a463f4a6cd59c68926ba4357ae8ff4c",
      "parents": [
        "134d33737f9015761c3832f6b268fae6274aac7f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Dec 12 18:12:21 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Dec 12 18:12:21 2011 -0800"
      },
      "message": "cgroup: introduce cgroup_taskset and use it in subsys-\u003ecan_attach(), cancel_attach() and attach()\n\nCurrently, there\u0027s no way to pass multiple tasks to cgroup_subsys\nmethods necessitating the need for separate per-process and per-task\nmethods.  This patch introduces cgroup_taskset which can be used to\npass multiple tasks and their associated cgroups to cgroup_subsys\nmethods.\n\nThree methods - can_attach(), cancel_attach() and attach() - are\nconverted to use cgroup_taskset.  This unifies passed parameters so\nthat all methods have access to all information.  Conversions in this\npatchset are identical and don\u0027t introduce any behavior change.\n\n-v2: documentation updated as per Paul Menage\u0027s suggestion.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Paul Menage \u003cpaul@paulmenage.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "134d33737f9015761c3832f6b268fae6274aac7f",
      "tree": "536b973af6429c25e1fc8ccbaf76395c09a8623d",
      "parents": [
        "cd3d095275374220921fcf0d4e0c16584b26ddbc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Dec 12 18:12:21 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Dec 12 18:12:21 2011 -0800"
      },
      "message": "cgroup: improve old cgroup handling in cgroup_attach_proc()\n\ncgroup_attach_proc() behaves differently from cgroup_attach_task() in\nthe following aspects.\n\n* All hooks are invoked even if no task is actually being moved.\n\n* -\u003ecan_attach_task() is called for all tasks in the group whether the\n  new cgrp is different from the current cgrp or not; however,\n  -\u003eattach_task() is skipped if new equals new.  This makes the calls\n  asymmetric.\n\nThis patch improves old cgroup handling in cgroup_attach_proc() by\nlooking up the current cgroup at the head, recording it in the flex\narray along with the task itself, and using it to remove the above two\ndifferences.  This will also ease further changes.\n\n-v2: nr_todo renamed to nr_migrating_tasks as per Paul Menage\u0027s\n     suggestion.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Paul Menage \u003cpaul@paulmenage.org\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "cd3d095275374220921fcf0d4e0c16584b26ddbc",
      "tree": "eb867534c5cdfa111f88b255f76242e93fddb8b6",
      "parents": [
        "77e4ef99d1c596a31747668e5fd837f77b6349b6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Dec 12 18:12:21 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Dec 12 18:12:21 2011 -0800"
      },
      "message": "cgroup: always lock threadgroup during migration\n\nUpdate cgroup to take advantage of the fack that threadgroup_lock()\nguarantees stable threadgroup.\n\n* Lock threadgroup even if the target is a single task.  This\n  guarantees that when the target tasks stay stable during migration\n  regardless of the target type.\n\n* Remove PF_EXITING early exit optimization from attach_task_by_pid()\n  and check it in cgroup_task_migrate() instead.  The optimization was\n  for rather cold path to begin with and PF_EXITING state can be\n  trusted throughout migration by checking it after locking\n  threadgroup.\n\n* Don\u0027t add PF_EXITING tasks to target task array in\n  cgroup_attach_proc().  This ensures that task migration is performed\n  only for live tasks.\n\n* Remove -ESRCH failure path from cgroup_task_migrate().  With the\n  above changes, it\u0027s guaranteed to be called only for live tasks.\n\nAfter the changes, only live tasks are migrated and they\u0027re guaranteed\nto stay alive until migration is complete.  This removes problems\ncaused by exec and exit racing against cgroup migration including\nsymmetry among cgroup attach methods and different cgroup methods\nracing each other.\n\nv2: Oleg pointed out that one more PF_EXITING check can be removed\n    from cgroup_attach_proc().  Removed.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Paul Menage \u003cpaul@paulmenage.org\u003e\n"
    },
    {
      "commit": "257058ae2b971646b96ab3a15605ac69186e562a",
      "tree": "b8a462e64c4bb4b43dcc6c9d05b194f9c747c91d",
      "parents": [
        "e25e2cbb4c6679bed5f52fb0f2cc381688297901"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Dec 12 18:12:21 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Dec 12 18:12:21 2011 -0800"
      },
      "message": "threadgroup: rename signal-\u003ethreadgroup_fork_lock to -\u003egroup_rwsem\n\nMake the following renames to prepare for extension of threadgroup\nlocking.\n\n* s/signal-\u003ethreadgroup_fork_lock/signal-\u003egroup_rwsem/\n* s/threadgroup_fork_read_lock()/threadgroup_change_begin()/\n* s/threadgroup_fork_read_unlock()/threadgroup_change_end()/\n* s/threadgroup_fork_write_lock()/threadgroup_lock()/\n* s/threadgroup_fork_write_unlock()/threadgroup_unlock()/\n\nThis patch doesn\u0027t cause any behavior change.\n\n-v2: Rename threadgroup_change_done() to threadgroup_change_end() per\n     KAMEZAWA\u0027s suggestion.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Paul Menage \u003cpaul@paulmenage.org\u003e\n"
    },
    {
      "commit": "e25e2cbb4c6679bed5f52fb0f2cc381688297901",
      "tree": "ba11d495cba21d3d233d4e25f94676ef9d0055ae",
      "parents": [
        "467de1fc67d1bd2954eaac7019c564f28fa2b6a5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Dec 12 18:12:21 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Dec 12 18:12:21 2011 -0800"
      },
      "message": "cgroup: add cgroup_root_mutex\n\ncgroup wants to make threadgroup stable while modifying cgroup\nhierarchies which will introduce locking dependency on\ncred_guard_mutex from cgroup_mutex.  This unfortunately completes\ncircular dependency.\n\n A. cgroup_mutex -\u003e cred_guard_mutex -\u003e s_type-\u003ei_mutex_key -\u003e namespace_sem\n B. namespace_sem -\u003e cgroup_mutex\n\nB is from cgroup_show_options() and this patch breaks it by\nintroducing another mutex cgroup_root_mutex which nests inside\ncgroup_mutex and protects cgroupfs_root.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "c1e2ee2dc436574880758b3836fc96935b774c32",
      "tree": "aa496a9ba20e06749194faa4dbb14b6046e6b06b",
      "parents": [
        "080d676de095a14ecba14c0b9a91acb5bbb634df"
      ],
      "author": {
        "name": "Andrew Bresticker",
        "email": "abrestic@google.com",
        "time": "Wed Nov 02 13:40:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:07:03 2011 -0700"
      },
      "message": "memcg: replace ss-\u003eid_lock with a rwlock\n\nWhile back-porting Johannes Weiner\u0027s patch \"mm: memcg-aware global\nreclaim\" for an internal effort, we noticed a significant performance\nregression during page-reclaim heavy workloads due to high contention of\nthe ss-\u003eid_lock.  This lock protects idr map, and serializes calls to\nidr_get_next() in css_get_next() (which is used during the memcg hierarchy\nwalk).\n\nSince idr_get_next() is just doing a look up, we need only serialize it\nwith respect to idr_remove()/idr_get_new().  By making the ss-\u003eid_lock a\nrwlock, contention is greatly reduced and performance improves.\n\nTested: cat a 256m file from a ramdisk in a 128m container 50 times on\neach core (one file + container per core) in parallel on a NUMA machine.\nResult is the time for the test to complete in 1 of the containers.\nBoth kernels included Johannes\u0027 memcg-aware global reclaim patches.\n\nBefore rwlock patch: 1710.778s\nAfter rwlock patch: 152.227s\n\nSigned-off-by: Andrew Bresticker \u003cabrestic@google.com\u003e\nCc: Paul Menage \u003cmenage@gmail.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Ying Han \u003cyinghan@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": "77ceab8ea590d7dc6c8f055ce43dfebd74428107",
      "tree": "b2ef5e5baca4579565ab9bf527e965dd9b93a25a",
      "parents": [
        "33ef6b6984403a688189317ef46bb3caab3b70e0"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@andrew.cmu.edu",
        "time": "Wed Nov 02 13:38:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:06:59 2011 -0700"
      },
      "message": "cgroups: don\u0027t attach task to subsystem if migration failed\n\nIf a task has exited to the point it has called cgroup_exit() already,\nthen we can\u0027t migrate it to another cgroup anymore.\n\nThis can happen when we are attaching a task to a new cgroup between the\ncall to -\u003ecan_attach_task() on subsystems and the migration that is\neventually tried in cgroup_task_migrate().\n\nIn this case cgroup_task_migrate() returns -ESRCH and we don\u0027t want to\nattach the task to the subsystems because the attachment to the new cgroup\nitself failed.\n\nFix this by only calling -\u003eattach_task() on the subsystems if the cgroup\nmigration succeeded.\n\nReported-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nAcked-by: Paul Menage \u003cpaul@paulmenage.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@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": "33ef6b6984403a688189317ef46bb3caab3b70e0",
      "tree": "43dff6dd0150b34ce69b1d681c92659c9b20eb5c",
      "parents": [
        "434a964daa14b9db083ce20404a4a2add54d037a"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@andrew.cmu.edu",
        "time": "Wed Nov 02 13:38:05 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:06:59 2011 -0700"
      },
      "message": "cgroups: more safe tasklist locking in cgroup_attach_proc\n\nFix unstable tasklist locking in cgroup_attach_proc.\n\nAccording to this thread - https://lkml.org/lkml/2011/7/27/243 - RCU is\nnot sufficient to guarantee the tasklist is stable w.r.t.  de_thread and\nexit.  Taking tasklist_lock for reading, instead of rcu_read_lock, ensures\nproper exclusion.\n\nSigned-off-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nAcked-by: Paul Menage \u003cpaul@paulmenage.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cdcc136ffd264849a943acb42c36ffe9b458f811",
      "tree": "9ec3752bb848a1b5af87ccd08172367ec7417989",
      "parents": [
        "f032a450812f6c7edd532772cc7c48091bca9f27"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Jul 25 16:47:45 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 13 11:11:49 2011 +0200"
      },
      "message": "locking, sched, cgroups: Annotate release_list_lock as raw\n\nThe release_list_lock can be taken in atomic context and therefore\ncannot be preempted on -rt - annotate it.\n\nIn mainline this change documents the low level nature of\nthe lock - otherwise there\u0027s no functional difference. Lockdep\nand Sparse checking will work as usual.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "95b6886526bb510b8370b625a49bc0ab3b8ff10f",
      "tree": "2862606224820d200be12d2092dcd26df1654b80",
      "parents": [
        "22712200e175e0df5c7f9edfe6c6bf5c94c23b83",
        "29412f0f6a19e34336368f13eab848091c343952"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 19:26:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 19:26:38 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (54 commits)\n  tpm_nsc: Fix bug when loading multiple TPM drivers\n  tpm: Move tpm_tis_reenable_interrupts out of CONFIG_PNP block\n  tpm: Fix compilation warning when CONFIG_PNP is not defined\n  TOMOYO: Update kernel-doc.\n  tpm: Fix a typo\n  tpm_tis: Probing function for Intel iTPM bug\n  tpm_tis: Fix the probing for interrupts\n  tpm_tis: Delay ACPI S3 suspend while the TPM is busy\n  tpm_tis: Re-enable interrupts upon (S3) resume\n  tpm: Fix display of data in pubek sysfs entry\n  tpm_tis: Add timeouts sysfs entry\n  tpm: Adjust interface timeouts if they are too small\n  tpm: Use interface timeouts returned from the TPM\n  tpm_tis: Introduce durations sysfs entry\n  tpm: Adjust the durations if they are too small\n  tpm: Use durations returned from TPM\n  TOMOYO: Enable conditional ACL.\n  TOMOYO: Allow using argv[]/envp[] of execve() as conditions.\n  TOMOYO: Allow using executable\u0027s realpath and symlink\u0027s target as conditions.\n  TOMOYO: Allow using owner/group etc. of file objects as conditions.\n  ...\n\nFix up trivial conflict in security/tomoyo/realpath.c\n"
    },
    {
      "commit": "60063497a95e716c9a689af3be2687d261f115b4",
      "tree": "6ce0d68db76982c53df46aee5f29f944ebf2c320",
      "parents": [
        "148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: use \u003clinux/atomic.h\u003e\n\nThis allows us to move duplicated code in \u003casm/atomic.h\u003e\n(atomic_inc_not_zero() for now) to \u003clinux/atomic.h\u003e\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@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": "d3ec4844d449cf7af9e749f73ba2052fb7b72fc2",
      "tree": "c515913e85f7e50878c83da2a88bc5a7269d087c",
      "parents": [
        "0003230e8200699860f0b10af524dc47bf8aecad",
        "df2e301fee3c2c2a87592151397ad7699bb14c37"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 13:56:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 13:56:39 2011 -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: (43 commits)\n  fs: Merge split strings\n  treewide: fix potentially dangerous trailing \u0027;\u0027 in #defined values/expressions\n  uwb: Fix misspelling of neighbourhood in comment\n  net, netfilter: Remove redundant goto in ebt_ulog_packet\n  trivial: don\u0027t touch files that are removed in the staging tree\n  lib/vsprintf: replace link to Draft by final RFC number\n  doc: Kconfig: `to be\u0027 -\u003e `be\u0027\n  doc: Kconfig: Typo: square -\u003e squared\n  doc: Konfig: Documentation/power/{pm \u003d\u003e apm-acpi}.txt\n  drivers/net: static should be at beginning of declaration\n  drivers/media: static should be at beginning of declaration\n  drivers/i2c: static should be at beginning of declaration\n  XTENSA: static should be at beginning of declaration\n  SH: static should be at beginning of declaration\n  MIPS: static should be at beginning of declaration\n  ARM: static should be at beginning of declaration\n  rcu: treewide: Do not use rcu_read_lock_held when calling rcu_dereference_check\n  Update my e-mail address\n  PCIe ASPM: forcedly -\u003e forcibly\n  gma500: push through device driver tree\n  ...\n\nFix up trivial conflicts:\n - arch/arm/mach-ep93xx/dma-m2p.c (deleted)\n - drivers/gpio/gpio-ep93xx.c (renamed and context nearby)\n - drivers/net/r8169.c (just context changes)\n"
    },
    {
      "commit": "3bfa784a6539f91a27d7ffdd408efdb638e3bebd",
      "tree": "2fb293076c98a4bbc18fd2ddad7fdc4cea08c384",
      "parents": [
        "1b5d783c94c328d406e801566f161adcfb018dda"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 19 12:55:10 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:11 2011 -0400"
      },
      "message": "kill file_permission() completely\n\nconvert the last remaining caller to inode_permission()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d8bf4ca9ca9576548628344c9725edd3786e90b1",
      "tree": "df338f50a5af6bc3651bd863b79fa91e6b1e9e20",
      "parents": [
        "eb032b9837a958e21ca000358a5bde5e17192ddb"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Fri Jul 08 14:39:41 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Jul 08 22:21:58 2011 +0200"
      },
      "message": "rcu: treewide: Do not use rcu_read_lock_held when calling rcu_dereference_check\n\nSince ca5ecddf (rcu: define __rcu address space modifier for sparse)\nrcu_dereference_check use rcu_read_lock_held as a part of condition\nautomatically so callers do not have to do that as well.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "2ce9738bac1b386f46e8478fd2c263460e7c2b09",
      "tree": "46b703439644693efb26239fc9c6278c85e7feb7",
      "parents": [
        "f55cf3c76a3b2e4bdcfea4f95c9d527663b41ece"
      ],
      "author": {
        "name": "eparis@redhat",
        "email": "eparis@redhat",
        "time": "Thu Jun 02 21:20:51 2011 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Jun 09 11:59:53 2011 +1000"
      },
      "message": "cgroupfs: use init_cred when populating new cgroupfs mount\n\nWe recently found that in some configurations SELinux was blocking the ability\nfor cgroupfs to be mounted.  The reason for this is because cgroupfs creates\nfiles and directories during the get_sb() call and also uses lookup_one_len()\nduring that same get_sb() call.  This is a problem since the security\nsubsystem cannot initialize the superblock and the inodes in that filesystem\nuntil after the get_sb() call returns.  Thus we leave the inodes in\nan unitialized state during get_sb().  For the vast majority of filesystems\nthis is not an issue, but since cgroupfs uses lookup_on_len() it does\nsearch permission checks on the directories in the path it walks.  Since the\ninode security state is not set up SELinux does these checks as if the inodes\nwere \u0027unlabeled.\u0027\n\nMany \u0027normal\u0027 userspace process do not have permission to interact with\nunlabeled inodes.  The solution presented here is to do the permission checks\nof path walk and inode creation as the kernel rather than as the task that\ncalled mount.  Since the kernel has permission to read/write/create\nunlabeled inodes the get_sb() call will complete successfully and the SELinux\ncode will be able to initialize the superblock and those inodes created during\nthe get_sb() call.\n\nThis appears to be the same solution used by other filesystems such as devtmpfs\nto solve the same issue and should thus have no negative impact on other LSMs\nwhich currently work.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "a77aea92010acf54ad785047234418d5d68772e2",
      "tree": "c7cb57b62fd02bee2baceb79251923f7caec6139",
      "parents": [
        "d846687d7f84e45f23ecf3846dbb43312a1206dd"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@free.fr",
        "time": "Thu May 26 16:25:23 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:34 2011 -0700"
      },
      "message": "cgroup: remove the ns_cgroup\n\nThe ns_cgroup is an annoying cgroup at the namespace / cgroup frontier and\nleads to some problems:\n\n  * cgroup creation is out-of-control\n  * cgroup name can conflict when pids are looping\n  * it is not possible to have a single process handling a lot of\n    namespaces without falling in a exponential creation time\n  * we may want to create a namespace without creating a cgroup\n\n  The ns_cgroup was replaced by a compatibility flag \u0027clone_children\u0027,\n  where a newly created cgroup will copy the parent cgroup values.\n  The userspace has to manually create a cgroup and add a task to\n  the \u0027tasks\u0027 file.\n\nThis patch removes the ns_cgroup as suggested in the following thread:\n\nhttps://lists.linux-foundation.org/pipermail/containers/2009-June/018616.html\n\nThe \u0027cgroup_clone\u0027 function is removed because it is no longer used.\n\nThis is a userspace-visible change.  Commit 45531757b45c (\"cgroup: notify\nns_cgroup deprecated\") (merged into 2.6.27) caused the kernel to emit a\nprintk warning users that the feature is planned for removal.  Since that\ntime we have heard from XXX users who were affected by this.\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\nCc: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Matt Helsley \u003cmatthltc@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": "d846687d7f84e45f23ecf3846dbb43312a1206dd",
      "tree": "5c19cf2e0e2faf288bb536f6878cddf11498ef3e",
      "parents": [
        "74a1166dfe1135dcc168d35fa5261aa7e087011b"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@andrew.cmu.edu",
        "time": "Thu May 26 16:25:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:34 2011 -0700"
      },
      "message": "cgroups: use flex_array in attach_proc\n\nConvert cgroup_attach_proc to use flex_array.\n\nThe cgroup_attach_proc implementation requires a pre-allocated array to\nstore task pointers to atomically move a thread-group, but asking for a\nmonolithic array with kmalloc() may be unreliable for very large groups.\nUsing flex_array provides the same functionality with less risk of\nfailure.\n\nThis is a post-patch for cgroup-procs-write.patch.\n\nSigned-off-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Miao Xie \u003cmiaox@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": "74a1166dfe1135dcc168d35fa5261aa7e087011b",
      "tree": "a7add70f0344e2352b8d0d6beb10aef85c6585f7",
      "parents": [
        "f780bdb7c1c73009cb57adcf99ef50027d80bf3c"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@andrew.cmu.edu",
        "time": "Thu May 26 16:25:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:34 2011 -0700"
      },
      "message": "cgroups: make procs file writable\n\nMake procs file writable to move all threads by tgid at once.\n\nAdd functionality that enables users to move all threads in a threadgroup\nat once to a cgroup by writing the tgid to the \u0027cgroup.procs\u0027 file.  This\ncurrent implementation makes use of a per-threadgroup rwsem that\u0027s taken\nfor reading in the fork() path to prevent newly forking threads within the\nthreadgroup from \"escaping\" while the move is in progress.\n\nSigned-off-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Miao Xie \u003cmiaox@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": "f780bdb7c1c73009cb57adcf99ef50027d80bf3c",
      "tree": "d15668ffcc40a2aaa31723b87cfda0b166f84d57",
      "parents": [
        "4714d1d32d97239fb5ae3e10521d3f133a899b66"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@andrew.cmu.edu",
        "time": "Thu May 26 16:25:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:34 2011 -0700"
      },
      "message": "cgroups: add per-thread subsystem callbacks\n\nAdd cgroup subsystem callbacks for per-thread attachment in atomic contexts\n\nAdd can_attach_task(), pre_attach(), and attach_task() as new callbacks\nfor cgroups\u0027s subsystem interface.  Unlike can_attach and attach, these\nare for per-thread operations, to be called potentially many times when\nattaching an entire threadgroup.\n\nAlso, the old \"bool threadgroup\" interface is removed, as replaced by\nthis.  All subsystems are modified for the new interface - of note is\ncpuset, which requires from/to nodemasks for attach to be globally scoped\n(though per-cpuset would work too) to persist from its pre_attach to\nattach_task and attach.\n\nThis is a pre-patch for cgroup-procs-writable.patch.\n\nSigned-off-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Miao Xie \u003cmiaox@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": "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"
    }
  ],
  "next": "676db4af043014e852f67ba0349dae0071bd11f3"
}
