)]}'
{
  "log": [
    {
      "commit": "0e1d768f1b1873272ec4e8dc1482bb5281855017",
      "tree": "8c8156afaa83e9d647c0202d63112b4be6a240d1",
      "parents": [
        "eaf797abc53b0ab3f0a02d4ef873a565fcce6daa"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 25 10:04:03 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 25 10:04:03 2014 -0500"
      },
      "message": "cgroup: drop task_lock() protection around task-\u003ecgroups\n\nFor optimization, task_lock() is additionally used to protect\ntask-\u003ecgroups.  The optimization is pretty dubious as either\ncss_set_rwsem is grabbed anyway or PF_EXITING already protects\ntask-\u003ecgroups.  It adds only overhead and confusion at this point.\nLet\u0027s drop task_[un]lock() and update comments accordingly.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "1958d2d53dadbb1c9aaf0b37741f13a60098b243",
      "tree": "2c9ad370a8ef3b9db1191f73e7e163857da8a641",
      "parents": [
        "ceb6a081f6f52d17ec9e46e271cc26a1eb8a7573"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 25 10:04:03 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 25 10:04:03 2014 -0500"
      },
      "message": "cgroup: split process / task migration into four steps\n\nCurrently, process / task migration is a single operation which may\nfail depending on memory pressure or the involved controllers\u0027\n-\u003ecan_attach() callbacks.  One problem with this approach is migration\nof multiple targets.  It\u0027s impossible to tell whether a given target\nwill be successfully migrated beforehand and cgroup core can\u0027t keep\ntrack of enough states to roll back after intermediate failure.\n\nThis is already an issue with cgroup_transfer_tasks().  Also, we\u0027re\ngonna need multiple target migration for unified hierarchy.\n\nThis patch splits migration into four stages -\ncgroup_migrate_add_src(), cgroup_migrate_prepare_dst(),\ncgroup_migrate() and cgroup_migrate_finish(), where\ncgroup_migrate_prepare_dst() performs all the operations which may\nfail due to allocation failure without actually migrating the target.\n\nThe four separate stages mean that, disregarding -\u003ecan_attach()\nfailures, the success or failure of multi target migration can be\ndetermined before performing any actual migration.  If preparations of\nall targets succeed, the whole thing will succeed.  If not, the whole\noperation can fail without any side-effect.\n\nSince the previous patch to use css_set-\u003emg_tasks to keep track of\nmigration targets, the only thing which may need memory allocation\nduring migration is the target css_sets.  cgroup_migrate_prepare()\npins all source and target css_sets and link them up.  Note that this\ncan be performed without holding threadgroup_lock even if the target\nis a process.  As long as cgroup_mutex is held, no new css_set can be\nput into play.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "b3dc094e93905ae9c1bc0815402ad8e5b203d068",
      "tree": "6d99ba4737ccbf7ce94f06937db571a7fcb902a4",
      "parents": [
        "c75611282cf1bf717c1866e7a7eb4d0743815187"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 25 10:04:01 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 25 10:04:01 2014 -0500"
      },
      "message": "cgroup: use css_set-\u003emg_tasks to track target tasks during migration\n\nCurrently, while migrating tasks from one cgroup to another,\ncgroup_attach_task() builds a flex array of all target tasks;\nunfortunately, this has a couple issues.\n\n* Flex array has size limit.  On 64bit, struct task_and_cgroup is\n  24bytes making the flex element limit around 87k.  It is a high\n  number but not impossible to hit.  This means that the current\n  cgroup implementation can\u0027t migrate a process with more than 87k\n  threads.\n\n* Process migration involves memory allocation whose size is dependent\n  on the number of threads the process has.  This means that cgroup\n  core can\u0027t guarantee success or failure of multi-process migrations\n  as memory allocation failure can happen in the middle.  This is in\n  part because cgroup can\u0027t grab threadgroup locks of multiple\n  processes at the same time, so when there are multiple processes to\n  migrate, it is imposible to tell how many tasks are to be migrated\n  beforehand.\n\n  Note that this already affects cgroup_transfer_tasks().  cgroup\n  currently cannot guarantee atomic success or failure of the\n  operation.  It may fail in the middle and after such failure cgroup\n  doesn\u0027t have enough information to roll back properly.  It just\n  aborts with some tasks migrated and others not.\n\nTo resolve the situation, this patch updates the migration path to use\ntask-\u003ecg_list to track target tasks.  The previous patch already added\ncss_set-\u003emg_tasks and updated iterations in non-migration paths to\ninclude them during task migration.  This patch updates migration path\nto actually make use of it.\n\nInstead of putting onto a flex_array, each target task is moved from\nits css_set-\u003etasks list to css_set-\u003emg_tasks and the migration path\nkeeps trace of all the source css_sets and the associated cgroups.\nOnce all source css_sets are determined, the destination css_set for\neach is determined, linked to the matching source css_set and put on a\nseparate list.\n\nTo iterate the target tasks, migration path just needs to iterat\nthrough either the source or target css_sets, depending on whether\nmigration has been committed or not, and the tasks on their -\u003emg_tasks\nlists.  cgroup_taskset is updated to contain the list_heads for source\nand target css_sets and the iteration cursor.  cgroup_taskset_*() are\naccordingly updated to walk through css_sets and their -\u003emg_tasks.\n\nThis resolves the above listed issues with moderate additional\ncomplexity.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "c75611282cf1bf717c1866e7a7eb4d0743815187",
      "tree": "4579606847463892cc65977a55bee386b2b5cf2a",
      "parents": [
        "f153ad11bca27996a5e8e1782557e36e80b03a8c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 25 10:04:01 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 25 10:04:01 2014 -0500"
      },
      "message": "cgroup: add css_set-\u003emg_tasks\n\nCurrently, while migrating tasks from one cgroup to another,\ncgroup_attach_task() builds a flex array of all target tasks;\nunfortunately, this has a couple issues.\n\n* Flex array has size limit.  On 64bit, struct task_and_cgroup is\n  24bytes making the flex element limit around 87k.  It is a high\n  number but not impossible to hit.  This means that the current\n  cgroup implementation can\u0027t migrate a process with more than 87k\n  threads.\n\n* Process migration involves memory allocation whose size is dependent\n  on the number of threads the process has.  This means that cgroup\n  core can\u0027t guarantee success or failure of multi-process migrations\n  as memory allocation failure can happen in the middle.  This is in\n  part because cgroup can\u0027t grab threadgroup locks of multiple\n  processes at the same time, so when there are multiple processes to\n  migrate, it is imposible to tell how many tasks are to be migrated\n  beforehand.\n\n  Note that this already affects cgroup_transfer_tasks().  cgroup\n  currently cannot guarantee atomic success or failure of the\n  operation.  It may fail in the middle and after such failure cgroup\n  doesn\u0027t have enough information to roll back properly.  It just\n  aborts with some tasks migrated and others not.\n\nTo resolve the situation, we\u0027re going to use task-\u003ecg_list during\nmigration too.  Instead of building a separate array, target tasks\nwill be linked into a dedicated migration list_head on the owning\ncss_set.  Tasks on the migration list are treated the same as tasks on\nthe usual tasks list; however, being on a separate list allows cgroup\nmigration code path to keep track of the target tasks by simply\nkeeping the list of css_sets with tasks being migrated, making\nunpredictable dynamic allocation unnecessary.\n\nIn prepartion of such migration path update, this patch introduces\ncss_set-\u003emg_tasks list and updates css_set task iterations so that\nthey walk both css_set-\u003etasks and -\u003emg_tasks.  Note that -\u003emg_tasks\nisn\u0027t used yet.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "cc045e3952175e84c38dad22dea14465b9fc8fb5",
      "tree": "d331bc8403047232ea13fd6c3951c9ef347b1bac",
      "parents": [
        "6534fd6c15858fe4ce4ae568106225e68d5afa81"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizefan@huawei.com",
        "time": "Fri Feb 14 16:56:04 2014 +0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Feb 14 10:52:40 2014 -0500"
      },
      "message": "cgroup: deal with dummp_top in cgroup_name() and cgroup_path()\n\nMy kernel fails to boot, because blkcg calls cgroup_path() while\ncgroupfs is not mounted.\n\nFix both cgroup_name() and cgroup_path().\n\nSigned-off-by: Li Zefan \u003clizefan@huawei.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "bc668c7519ff8b4681af80e92f463bec7bf7cf9e",
      "tree": "f2940d003d0cb3d2395d5f7d12524e968839add2",
      "parents": [
        "57fce0a68e3aa71d223d9023aae66c7393970c34"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 13 06:58:43 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 13 06:58:43 2014 -0500"
      },
      "message": "cgroup: remove cgroup_taskset_cur_css() and cgroup_taskset_size()\n\nThe two functions don\u0027t have any users left.  Remove them along with\ncgroup_taskset-\u003ecur_cgrp.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "924f0d9a2078f49ff331bb43196ec5afadc16b8f",
      "tree": "6df0c9852c7b16c2f2eb69b04f90aacae9f95132",
      "parents": [
        "cb0f1fe9ba47c202a98a9d41ad5c12c0ac7732e9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 13 06:58:41 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 13 06:58:41 2014 -0500"
      },
      "message": "cgroup: drop @skip_css from cgroup_taskset_for_each()\n\nIf !NULL, @skip_css makes cgroup_taskset_for_each() skip the matching\ncss.  The intention of the interface is to make it easy to skip css\u0027s\n(cgroup_subsys_states) which already match the migration target;\nhowever, this is entirely unnecessary as migration taskset doesn\u0027t\ninclude tasks which are already in the target cgroup.  Drop @skip_css\nfrom cgroup_taskset_for_each().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nCc: Daniel Borkmann \u003cdborkman@redhat.com\u003e\n"
    },
    {
      "commit": "889ed9ceaa97bb02bf5d7349e24639f7fc5f4fa0",
      "tree": "82986b170db353226b40e26a0c8954645b676974",
      "parents": [
        "d66393e54e0a9dc743e440eb36c58bd1158a560e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 13 06:58:40 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 13 06:58:40 2014 -0500"
      },
      "message": "cgroup: remove css_scan_tasks()\n\ncss_scan_tasks() doesn\u0027t have any user left.  Remove it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "07bc356ed2950048d33d667e933e1b913c6e6b6d",
      "tree": "5efb91f14c21157285965cfcbf480a3538dda35e",
      "parents": [
        "afeb0f9fd425239aa477c842480f240bfb6325b3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 13 06:58:39 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 13 06:58:39 2014 -0500"
      },
      "message": "cgroup: implement cgroup_has_tasks() and unexport cgroup_task_count()\n\ncgroup_task_count() read-locks css_set_lock and walks all tasks to\ncount them and then returns the result.  The only thing all the users\nwant is determining whether the cgroup is empty or not.  This patch\nimplements cgroup_has_tasks() which tests whether cgroup-\u003ecset_links\nis empty, replaces all cgroup_task_count() usages and unexports it.\n\nNote that the test isn\u0027t synchronized.  This is the same as before.\nThe test has always been racy.\n\nThis will help planned css_set locking update.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\n"
    },
    {
      "commit": "35585573055f37837eb752ee22eb5523682ca742",
      "tree": "6cf006b6409e6256ca4d3a81eb5701cde931a324",
      "parents": [
        "d3ba07c3aa9ae3e03329b0a7f1a067c0647aa2af"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 13 06:58:38 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 13 06:58:38 2014 -0500"
      },
      "message": "cgroup: drop CGRP_ROOT_SUBSYS_BOUND\n\nBefore kernfs conversion, due to the way super_block lookup works,\ncgroup roots were created and made visible before being fully\ninitialized.  This in turn required a special flag to mark that the\nroot hasn\u0027t been fully initialized so that the destruction path can\ntell fully bound ones from half initialized.\n\nThat flag is CGRP_ROOT_SUBSYS_BOUND and no longer necessary after the\nkernfs conversion as the lookup and creation of new root are atomic\nw.r.t. cgroup_mutex.  This patch removes the flag and passes the\nrequests subsystem mask to cgroup_setup_root() so that it can set the\nrespective mask bits as subsystems are bound.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "d3ba07c3aa9ae3e03329b0a7f1a067c0647aa2af",
      "tree": "17a4968e339822a520f864fe4127be39e0563f5c",
      "parents": [
        "a755180bab81c038a6989d7ab746c702f1b3ec03"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 13 06:58:38 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 13 06:58:38 2014 -0500"
      },
      "message": "cgroup: disallow xattr, release_agent and name if sane_behavior\n\nDisallow more mount options if sane_behavior.  Note that xattr used to\ngenerate warning.\n\nWhile at it, simplify option check in cgroup_mount() and update\nsane_behavior comment in cgroup.h.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "776f02fa4e1ad70557c0318c70ce928e0642bee0",
      "tree": "f2080066461b0ef75a964a8ef2b9a2243d7b5389",
      "parents": [
        "3c9c825b8b50de7dbb015e6bfc04bb2da79364d9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 12 09:29:50 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 12 09:29:50 2014 -0500"
      },
      "message": "cgroup: remove cgroupfs_root-\u003erefcnt\n\nCurrently, cgroupfs_root and its -\u003etop_cgroup are separated reference\ncounted and the latter\u0027s is ignored.  There\u0027s no reason to do this\nseparately.  This patch removes cgroupfs_root-\u003erefcnt and destroys\ncgroupfs_root when the top_cgroup is released.\n\n* cgroup_put() updated to ignore cgroup_is_dead() test for top\n  cgroups.  cgroup_free_fn() updated to handle root destruction when\n  releasing a top cgroup.\n\n* As root destruction is now bounced through cgroup destruction, it is\n  asynchronous.  Update cgroup_mount() so that it waits for pending\n  release which is currently implemented using msleep().  Converting\n  this to proper wait_queue isn\u0027t hard but likely unnecessary.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "3c9c825b8b50de7dbb015e6bfc04bb2da79364d9",
      "tree": "d12fdc2cc0c232e07f1cccb1f72435210e18075e",
      "parents": [
        "e61734c55c24cdf11b07e52a74aec4dc4a7f4bd0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 12 09:29:50 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 12 09:29:50 2014 -0500"
      },
      "message": "cgroup: rename cgroupfs_root-\u003enumber_of_cgroups to -\u003enr_cgrps and make it atomic_t\n\nroot-\u003enumber_of_cgroups is currently an integer protected with\ncgroup_mutex.  Except for sanity checks and proc reporting, the only\nplace it\u0027s used is to check whether the root has any child during\nremount; however, this is a bit flawed as the counter is not\ndecremented when the cgroup is unlinked but when it\u0027s released,\nmeaning that there could be an extended period where all cgroups are\nremoved but remount is still not allowed because some internal objects\nare lingering.  While not perfect either, it\u0027d be better to use\nemptiness test on root-\u003etop_cgroup.children.\n\nThis patch updates cgroup_remount() to test top_cgroup\u0027s children\ninstead, which makes number_of_cgroups only actual usage statistics\nprinting in proc implemented in proc_cgroupstats_show().  Let\u0027s\nshorten its name and make it an atomic_t so that we don\u0027t have to\nworry about its synchronization.  It\u0027s purely auxiliary at this point.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "e61734c55c24cdf11b07e52a74aec4dc4a7f4bd0",
      "tree": "bab256faae539cd38840bfc886317f80385acae4",
      "parents": [
        "6f30558f37bfbd428e3854c2c34b5c32117c8f7e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 12 09:29:50 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 12 09:29:50 2014 -0500"
      },
      "message": "cgroup: remove cgroup-\u003ename\n\ncgroup-\u003ename handling became quite complicated over time involving\ndedicated struct cgroup_name for RCU protection.  Now that cgroup is\non kernfs, we can drop all of it and simply use kernfs_name/path() and\nfriends.  Replace cgroup-\u003ename and all related code with kernfs\nname/path constructs.\n\n* Reimplement cgroup_name() and cgroup_path() as thin wrappers on top\n  of kernfs counterparts, which involves semantic changes.\n  pr_cont_cgroup_name() and pr_cont_cgroup_path() added.\n\n* cgroup-\u003ename handling dropped from cgroup_rename().\n\n* All users of cgroup_name/path() updated to the new semantics.  Users\n  which were formatting the string just to printk them are converted\n  to use pr_cont_cgroup_name/path() instead, which simplifies things\n  quite a bit.  As cgroup_name() no longer requires RCU read lock\n  around it, RCU lockings which were protecting only cgroup_name() are\n  removed.\n\nv2: Comment above oom_info_lock updated as suggested by Michal.\n\nv3: dummy_top doesn\u0027t have a kn associated and\n    pr_cont_cgroup_name/path() ended up calling the matching kernfs\n    functions with NULL kn leading to oops.  Test for NULL kn and\n    print \"/\" if so.  This issue was reported by Fengguang Wu.\n\nv4: Rebased on top of 0ab02ca8f887 (\"cgroup: protect modifications to\n    cgroup_idr with cgroup_mutex\").\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\nCc: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\n"
    },
    {
      "commit": "0adb070426dde2fd0b84e7f4f5cefcd8f0b24410",
      "tree": "d6acf3d7e39fa838998af178ef340f1d159d2fb2",
      "parents": [
        "80b13586997d8e584caa772bd99e2a3e55ac6abe"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 12 09:29:48 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 12 09:29:48 2014 -0500"
      },
      "message": "cgroup: remove cftype_set\n\ncftype_set was added primarily to allow registering the same cftype\narray more than once for different subsystems.  Nobody uses or needs\nsuch thing and it\u0027s already broken because each cftype has -\u003ess\npointer which is initialized during registration.\n\nLet\u0027s add list_head -\u003enode to cftype and use the first cftype entry in\nthe array to link them instead of allocating separate cftype_set.\nWhile at it, trigger WARN if cft seems previously initialized during\nregistration.\n\nThis simplifies cftype handling a bit.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "86bf4b68759141459864ebd36ac3038a9cda895b",
      "tree": "81c1bfe990c4752f5056c9df02258391fc9ca464",
      "parents": [
        "2bd59d48ebfb3df41ee56938946ca0dd30887312"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 12 09:29:48 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 12 09:29:48 2014 -0500"
      },
      "message": "cgroup: warn if \"xattr\" is specified with \"sane_behavior\"\n\nMount option \"xattr\" is no longer necessary as it\u0027s enabled by default\non kernfs.  Warn if \"xattr\" is specified with \"sane_behavior\" so that\nthe option can be removed in the future.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "2bd59d48ebfb3df41ee56938946ca0dd30887312",
      "tree": "8e18b5e94b96f42418113687f27c61fa1ec5e147",
      "parents": [
        "f2e85d574e881ff3c597518c1ab48c86f9109880"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 11 11:52:49 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 11 11:52:49 2014 -0500"
      },
      "message": "cgroup: convert to kernfs\n\ncgroup filesystem code was derived from the original sysfs\nimplementation which was heavily intertwined with vfs objects and\nlocking with the goal of re-using the existing vfs infrastructure.\nThat experiment turned out rather disastrous and sysfs switched, a\nlong time ago, to distributed filesystem model where a separate\nrepresentation is maintained which is queried by vfs.  Unfortunately,\ncgroup stuck with the failed experiment all these years and\naccumulated even more problems over time.\n\nLocking and object lifetime management being entangled with vfs is\nprobably the most egregious.  vfs is never designed to be misused like\nthis and cgroup ends up jumping through various convoluted dancing to\nmake things work.  Even then, operations across multiple cgroups can\u0027t\nbe done safely as it\u0027ll deadlock with rename locking.\n\nRecently, kernfs is separated out from sysfs so that it can be used by\nusers other than sysfs.  This patch converts cgroup to use kernfs,\nwhich will bring the following benefits.\n\n* Separation from vfs internals.  Locking and object lifetime\n  management is contained in cgroup proper making things a lot\n  simpler.  This removes significant amount of locking convolutions,\n  hairy object lifetime rules and the restriction on multi-cgroup\n  operations.\n\n* Can drop a lot of code to implement filesystem interface as most are\n  provided by kernfs.\n\n* Proper \"severing\" semantics, which allows controllers to not worry\n  about lingering file accesses after offline.\n\nWhile the preceding patches did as much as possible to make the\ntransition less painful, large part of the conversion has to be one\ndiscrete step making this patch rather large.  The rest of the commit\nmessage lists notable changes in different areas.\n\nOverall\n-------\n\n* vfs constructs replaced with kernfs ones.  cgroup-\u003edentry w/ -\u003ekn,\n  cgroupfs_root-\u003esb w/ -\u003ekf_root.\n\n* All dentry accessors are removed.  Helpers to map from kernfs\n  constructs are added.\n\n* All vfs plumbing around dentry, inode and bdi removed.\n\n* cgroup_mount() now directly looks for matching root and then\n  proceeds to create a new one if not found.\n\nSynchronization and object lifetime\n-----------------------------------\n\n* vfs inode locking removed.  Among other things, this removes the\n  need for the convolution in cgroup_cfts_commit().  Future patches\n  will further simplify it.\n\n* vfs refcnting replaced with cgroup internal ones.  cgroup-\u003erefcnt,\n  cgroupfs_root-\u003erefcnt added.  cgroup_put_root() now directly puts\n  root-\u003erefcnt and when it reaches zero proceeds to destroy it thus\n  merging cgroup_put_root() and the former cgroup_kill_sb().\n  Simliarly, cgroup_put() now directly schedules cgroup_free_rcu()\n  when refcnt reaches zero.\n\n* Unlike before, kernfs objects don\u0027t hold onto cgroup objects.  When\n  cgroup destroys a kernfs node, all existing operations are drained\n  and the association is broken immediately.  The same for\n  cgroupfs_roots and mounts.\n\n* All operations which come through kernfs guarantee that the\n  associated cgroup is and stays valid for the duration of operation;\n  however, there are two paths which need to find out the associated\n  cgroup from dentry without going through kernfs -\n  css_tryget_from_dir() and cgroupstats_build().  For these two,\n  kernfs_node-\u003epriv is RCU managed so that they can dereference it\n  under RCU read lock.\n\nFile and directory handling\n---------------------------\n\n* File and directory operations converted to kernfs_ops and\n  kernfs_syscall_ops.\n\n* xattrs is implicitly supported by kernfs.  No need to worry about it\n  from cgroup.  This means that \"xattr\" mount option is no longer\n  necessary.  A future patch will add a deprecated warning message\n  when sane_behavior.\n\n* When cftype-\u003emax_write_len \u003e PAGE_SIZE, it\u0027s necessary to make a\n  private copy of one of the kernfs_ops to set its atomic_write_len.\n  cftype-\u003ekf_ops is added and cgroup_init/exit_cftypes() are updated\n  to handle it.\n\n* cftype-\u003elockdep_key added so that kernfs lockdep annotation can be\n  per cftype.\n\n* Inidividual file entries and open states are now managed by kernfs.\n  No need to worry about them from cgroup.  cfent, cgroup_open_file\n  and their friends are removed.\n\n* kernfs_nodes are created deactivated and kernfs_activate()\n  invocations added to places where creation of new nodes are\n  committed.\n\n* cgroup_rmdir() uses kernfs_[un]break_active_protection() for\n  self-removal.\n\nv2: - Li pointed out in an earlier patch that specifying \"name\u003d\"\n      during mount without subsystem specification should succeed if\n      there\u0027s an existing hierarchy with a matching name although it\n      should fail with -EINVAL if a new hierarchy should be created.\n      Prior to the conversion, this used by handled by deferring\n      failure from NULL return from cgroup_root_from_opts(), which was\n      necessary because root was being created before checking for\n      existing ones.  Note that cgroup_root_from_opts() returned an\n      ERR_PTR() value for error conditions which require immediate\n      mount failure.\n\n      As we now have separate search and creation steps, deferring\n      failure from cgroup_root_from_opts() is no longer necessary.\n      cgroup_root_from_opts() is updated to always return ERR_PTR()\n      value on failure.\n\n    - The logic to match existing roots is updated so that a mount\n      attempt with a matching name but different subsys_mask are\n      rejected.  This was handled by a separate matching loop under\n      the comment \"Check for name clashes with existing mounts\" but\n      got lost during conversion.  Merge the check into the main\n      search loop.\n\n    - Add __rcu __force casting in RCU_INIT_POINTER() in\n      cgroup_destroy_locked() to avoid the sparse address space\n      warning reported by kbuild test bot.  Maybe we want an explicit\n      interface to use kn-\u003epriv as RCU protected pointer?\n\nv3: Make CONFIG_CGROUPS select CONFIG_KERNFS.\n\nv4: Rebased on top of 0ab02ca8f887 (\"cgroup: protect modifications to\n    cgroup_idr with cgroup_mutex\").\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\nCc: kbuild test robot fengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "59f5296b51b86718dd6eecf0a268b2f1a1ec0a2d",
      "tree": "0854f2b46c93190b8fb5bb1e0a992f1e5b77320e",
      "parents": [
        "b1664924062393bb048203bd4622e0b1c9e1d328"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 11 11:52:49 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 11 11:52:49 2014 -0500"
      },
      "message": "cgroup: misc preps for kernfs conversion\n\n* Un-inline seq_css().  After kernfs conversion, the function will\n  need to dereference internal data structures.\n\n* Add cgroup_get/put_root() and replace direct super_block-\u003es_active\n  manipulatinos with them.  These will be converted to kernfs_root\n  refcnting.\n\n* Add cgroup_get/put() and replace dget/put() on cgrp-\u003edentry with\n  them.  These will be converted to kernfs refcnting.\n\n* Update current_css_set_cg_links_read() to use cgroup_name() instead\n  of reaching into the dentry name.  The end result is the same.\n\nThese changes don\u0027t make functional differences but will make\ntransition to kernfs easier.\n\nv2: Rebased on top of 0ab02ca8f887 (\"cgroup: protect modifications to\n    cgroup_idr with cgroup_mutex\").\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "b1664924062393bb048203bd4622e0b1c9e1d328",
      "tree": "4fbbb4a62793e72d9dbe44c71db0ea75f54cc21b",
      "parents": [
        "2da440a26ce4743bd3e71ba964ba3f983d09bba5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 11 11:52:49 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 11 11:52:49 2014 -0500"
      },
      "message": "cgroup: introduce cgroup_ino()\n\nmm/memory-failure.c::hwpoison_filter_task() has been reaching into\ncgroup to extract the associated ino to be used as a filtering\ncriterion.  This is an implementation detail which shouldn\u0027t be\ndepended upon from outside cgroup proper and is about to change with\nthe scheduled kernfs conversion.\n\nThis patch introduces a proper interface to determine the associated\nino, cgroup_ino(), and updates hwpoison_filter_task() to use it\ninstead of reaching directly into cgroup.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "5f46990787e2721b4db190ddc8af6fdbe8f010d7",
      "tree": "5a5e8439e8560eb95a86f58036b5282e1a7036b6",
      "parents": [
        "de00ffa56ea3132c6013fc8f07133b8a1014cf53"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 11 11:52:48 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 11 11:52:48 2014 -0500"
      },
      "message": "cgroup: update the meaning of cftype-\u003emax_write_len\n\ncftype-\u003emax_write_len is used to extend the maximum size of writes.\nIt\u0027s interpreted in such a way that the actual maximum size is one\nless than the specified value.  The default size is defined by\nCGROUP_LOCAL_BUFFER_SIZE.  Its interpretation is quite confusing - its\nvalue is decremented by 1 and then compared for equality with max\nsize, which means that the actual default size is\nCGROUP_LOCAL_BUFFER_SIZE - 2, which is 62 chars.\n\nThere\u0027s no point in having a limit that low.  Update its definition so\nthat it means the actual string length sans termination and anything\nbelow PAGE_SIZE-1 is treated as PAGE_SIZE-1.\n\n.max_write_len for \"release_agent\" is updated to PATH_MAX-1 and\ncgroup_release_agent_write() is updated so that the redundant strlen()\ncheck is removed and it uses strlcpy() instead of strcpy().\n.max_write_len initializations in blk-throttle.c and cfq-iosched.c are\nno longer necessary and removed.  The one in cpuset is kept unchanged\nas it\u0027s an approximated value to begin with.\n\nThis will also make transition to kernfs smoother.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "de00ffa56ea3132c6013fc8f07133b8a1014cf53",
      "tree": "25e6f273dc9374ad2a4507bb42627d1262e4582e",
      "parents": [
        "8d7e6fb0a1db970ac3589f87af0f2a20ef46654b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 11 11:52:48 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 11 11:52:48 2014 -0500"
      },
      "message": "cgroup: make cgroup_subsys-\u003ebase_cftypes use cgroup_add_cftypes()\n\nCurrently, cgroup_subsys-\u003ebase_cftypes registration is different from\ndynamic cftypes registartion.  Instead of going through\ncgroup_add_cftypes(), cgroup_init_subsys() invokes\ncgroup_init_cftsets() which makes use of cgroup_subsys-\u003ebase_cftset\nwhich doesn\u0027t involve dynamic allocation.\n\nWhile avoiding dynamic allocation is somewhat nice, having two\nseparate paths for cftypes registration is nasty, especially as we\u0027re\nplanning to add more operations during cftypes registration.\n\nThis patch drops cgroup_init_cftsets() and cgroup_subsys-\u003ebase_cftset\nand registers base_cftypes using cgroup_add_cftypes().  This is done\nas a separate step in cgroup_init() instead of a part of\ncgroup_init_subsys().  This is because cgroup_init_subsys() can be\ncalled very early during boot when kmalloc() isn\u0027t available yet.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "5a17f543ed6808e9085063277fe46795dea484bd",
      "tree": "8b6e2afd5619bcff76438470670247eb55bef908",
      "parents": [
        "398f878789fceb51bf5e424b753a3756643513c4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 11 11:52:47 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 11 11:52:47 2014 -0500"
      },
      "message": "cgroup: improve css_from_dir() into css_tryget_from_dir()\n\ncss_from_dir() returns the matching css (cgroup_subsys_state) given a\ndentry and subsystem.  The function doesn\u0027t pin the css before\nreturning and requires the caller to be holding RCU read lock or\ncgroup_mutex and handling pinning on the caller side.\n\nGiven that users of the function are likely to want to pin the\nreturned css (both existing users do) and that getting and putting\ncss\u0027s are very cheap, there\u0027s no reason for the interface to be tricky\nlike this.\n\nRename css_from_dir() to css_tryget_from_dir() and make it try to pin\nthe found css and return it only if pinning succeeded.  The callers\nare updated so that they no longer do RCU locking and pinning around\nthe function and just use the returned css.\n\nThis will also ease converting cgroup to kernfs.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\n"
    },
    {
      "commit": "398f878789fceb51bf5e424b753a3756643513c4",
      "tree": "cd80a446bd1e2f1adc5652a805ac2f98a40b003e",
      "parents": [
        "f7cef064aa01a1ac682c1945cc168b878cb118ff",
        "0ab02ca8f887908152d1a96db5130fc661d36a1e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 11 11:02:59 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 11 11:02:59 2014 -0500"
      },
      "message": "Merge branch \u0027cgroup/for-3.14-fixes\u0027 into cgroup/for-3.15\n\nPull for-3.14-fixes to receive 0ab02ca8f887 (\"cgroup: protect\nmodifications to cgroup_idr with cgroup_mutex\") prior to kernfs\nconversion series to avoid non-trivial conflicts.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "0ab02ca8f887908152d1a96db5130fc661d36a1e",
      "tree": "81f7be1f4da646a88ab09bd7c01927a4f2a180bf",
      "parents": [
        "48573a893303986e3b0b2974d6fb11f3d1bb7064"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizefan@huawei.com",
        "time": "Tue Feb 11 16:05:46 2014 +0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 11 10:38:30 2014 -0500"
      },
      "message": "cgroup: protect modifications to cgroup_idr with cgroup_mutex\n\nSetup cgroupfs like this:\n  # mount -t cgroup -o cpuacct xxx /cgroup\n  # mkdir /cgroup/sub1\n  # mkdir /cgroup/sub2\n\nThen run these two commands:\n  # for ((; ;)) { mkdir /cgroup/sub1/tmp \u0026\u0026 rmdir /mnt/sub1/tmp; } \u0026\n  # for ((; ;)) { mkdir /cgroup/sub2/tmp \u0026\u0026 rmdir /mnt/sub2/tmp; } \u0026\n\nAfter seconds you may see this warning:\n\n------------[ cut here ]------------\nWARNING: CPU: 1 PID: 25243 at lib/idr.c:527 sub_remove+0x87/0x1b0()\nidr_remove called for id\u003d6 which is not allocated.\n...\nCall Trace:\n [\u003cffffffff8156063c\u003e] dump_stack+0x7a/0x96\n [\u003cffffffff810591ac\u003e] warn_slowpath_common+0x8c/0xc0\n [\u003cffffffff81059296\u003e] warn_slowpath_fmt+0x46/0x50\n [\u003cffffffff81300aa7\u003e] sub_remove+0x87/0x1b0\n [\u003cffffffff810f3f02\u003e] ? css_killed_work_fn+0x32/0x1b0\n [\u003cffffffff81300bf5\u003e] idr_remove+0x25/0xd0\n [\u003cffffffff810f2bab\u003e] cgroup_destroy_css_killed+0x5b/0xc0\n [\u003cffffffff810f4000\u003e] css_killed_work_fn+0x130/0x1b0\n [\u003cffffffff8107cdbc\u003e] process_one_work+0x26c/0x550\n [\u003cffffffff8107eefe\u003e] worker_thread+0x12e/0x3b0\n [\u003cffffffff81085f96\u003e] kthread+0xe6/0xf0\n [\u003cffffffff81570bac\u003e] ret_from_fork+0x7c/0xb0\n---[ end trace 2d1577ec10cf80d0 ]---\n\nIt\u0027s because allocating/removing cgroup ID is not properly synchronized.\n\nThe bug was introduced when we converted cgroup_ida to cgroup_idr.\nWhile synchronization is already done inside ida_simple_{get,remove}(),\nusers are responsible for concurrent calls to idr_{alloc,remove}().\n\ntj: Refreshed on top of b58c89986a77 (\"cgroup: fix error return from\ncgroup_create()\").\n\nFixes: 4e96ee8e981b (\"cgroup: convert cgroup_ida to cgroup_idr\")\nCc: \u003cstable@vger.kernel.org\u003e #3.12+\nReported-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Li Zefan \u003clizefan@huawei.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "f7cef064aa01a1ac682c1945cc168b878cb118ff",
      "tree": "5dc256a4e01689eed60ab3e7a7ab8e50c5bcf602",
      "parents": [
        "1a698a4aba26dd58e8409d325a9a9db22f7cd2db",
        "ba341d55a420ab4fdd1a53fd395fd59bd65de880"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Feb 08 10:37:44 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Feb 08 10:37:44 2014 -0500"
      },
      "message": "Merge branch \u0027driver-core-next\u0027 into cgroup/for-3.15\n\nPending kernfs conversion depends on kernfs improvements in\ndriver-core-next.  Pull it into for-3.15.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "aec25020f5d4b69aea5317551d1cb7043f6b04fb",
      "tree": "ed9c89b1468542a9d5be6f20af24db8d6251c90b",
      "parents": [
        "073219e995b4a3f8cf1ce8228b7ef440b6994ac0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Feb 08 10:36:58 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Feb 08 10:36:58 2014 -0500"
      },
      "message": "cgroup: rename cgroup_subsys-\u003esubsys_id to -\u003eid\n\nIt\u0027s no longer referenced outside cgroup core, so renaming is easy.\nLet\u0027s rename it for consistency \u0026 brevity.\n\nThis patch is pure rename.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "073219e995b4a3f8cf1ce8228b7ef440b6994ac0",
      "tree": "d140fc2e94bd8fd09270286b7267fb087a79f288",
      "parents": [
        "3ed80a62bf959d34ebd4d553b026fbe7e6fbcc54"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Feb 08 10:36:58 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Feb 08 10:36:58 2014 -0500"
      },
      "message": "cgroup: clean up cgroup_subsys names and initialization\n\ncgroup_subsys is a bit messier than it needs to be.\n\n* The name of a subsys can be different from its internal identifier\n  defined in cgroup_subsys.h.  Most subsystems use the matching name\n  but three - cpu, memory and perf_event - use different ones.\n\n* cgroup_subsys_id enums are postfixed with _subsys_id and each\n  cgroup_subsys is postfixed with _subsys.  cgroup.h is widely\n  included throughout various subsystems, it doesn\u0027t and shouldn\u0027t\n  have claim on such generic names which don\u0027t have any qualifier\n  indicating that they belong to cgroup.\n\n* cgroup_subsys-\u003esubsys_id should always equal the matching\n  cgroup_subsys_id enum; however, we require each controller to\n  initialize it and then BUG if they don\u0027t match, which is a bit\n  silly.\n\nThis patch cleans up cgroup_subsys names and initialization by doing\nthe followings.\n\n* cgroup_subsys_id enums are now postfixed with _cgrp_id, and each\n  cgroup_subsys with _cgrp_subsys.\n\n* With the above, renaming subsys identifiers to match the userland\n  visible names doesn\u0027t cause any naming conflicts.  All non-matching\n  identifiers are renamed to match the official names.\n\n  cpu_cgroup -\u003e cpu\n  mem_cgroup -\u003e memory\n  perf -\u003e perf_event\n\n* controllers no longer need to initialize -\u003esubsys_id and -\u003ename.\n  They\u0027re generated in cgroup core and set automatically during boot.\n\n* Redundant cgroup_subsys declarations removed.\n\n* While updating BUG_ON()s in cgroup_init_early(), convert them to\n  WARN()s.  BUGging that early during boot is stupid - the kernel\n  can\u0027t print anything, even through serial console and the trap\n  handler doesn\u0027t even link stack frame properly for back-tracing.\n\nThis patch doesn\u0027t introduce any behavior changes.\n\nv2: Rebased on top of fe1217c4f3f7 (\"net: net_cls: move cgroupfs\n    classid handling into core\").\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nAcked-by: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nAcked-by: \"Rafael J. Wysocki\" \u003crjw@rjwysocki.net\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Aristeu Rozanski \u003caris@redhat.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@redhat.com\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: Thomas Graf \u003ctgraf@suug.ch\u003e\n"
    },
    {
      "commit": "3ed80a62bf959d34ebd4d553b026fbe7e6fbcc54",
      "tree": "3ec2ce050e41b056a8de66f24eac76dd2d5912e5",
      "parents": [
        "af6363374cbda5007e46efa99f7346efd4eea5fc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Feb 08 10:36:58 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Feb 08 10:36:58 2014 -0500"
      },
      "message": "cgroup: drop module support\n\nWith module supported dropped from net_prio, no controller is using\ncgroup module support.  None of actual resource controllers can be\nbuilt as a module and we aren\u0027t gonna add new controllers which don\u0027t\ncontrol resources.  This patch drops module support from cgroup.\n\n* cgroup_[un]load_subsys() and cgroup_subsys-\u003emodule removed.\n\n* As there\u0027s no point in distinguishing IS_BUILTIN() and IS_MODULE(),\n  cgroup_subsys.h now uses IS_ENABLED() directly.\n\n* enum cgroup_subsys_id now exactly matches the list of enabled\n  controllers as ordered in cgroup_subsys.h.\n\n* cgroup_subsys[] is now a contiguously occupied array.  Size\n  specification is no longer necessary and dropped.\n\n* for_each_builtin_subsys() is removed and for_each_subsys() is\n  updated to not require any locking.\n\n* module ref handling is removed from rebind_subsystems().\n\n* Module related comments dropped.\n\nv2: Rebased on top of fe1217c4f3f7 (\"net: net_cls: move cgroupfs\n    classid handling into core\").\n\nv3: Added {} around the if (need_forkexit_callback) block in\n    cgroup_post_fork() for readability as suggested by Li.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "ba341d55a420ab4fdd1a53fd395fd59bd65de880",
      "tree": "2de1c2cfc849e34434b275d78a9b40962418912a",
      "parents": [
        "fa4cd451cceb77e97432b91fcf50a7e4a7361e29"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 03 14:09:17 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Feb 07 16:08:57 2014 -0800"
      },
      "message": "kernfs: add CONFIG_KERNFS\n\nAs sysfs was kernfs\u0027s only user, kernfs has been piggybacking on\nCONFIG_SYSFS; however, kernfs is scheduled to grow a new user very\nsoon.  Introduce a separate config option CONFIG_KERNFS which is to be\nselected by kernfs users.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: linux-fsdevel@vger.kernel.org\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "fa4cd451cceb77e97432b91fcf50a7e4a7361e29",
      "tree": "5e5740ea38ebe390cc4f054e9fd5426003dcf46c",
      "parents": [
        "3eef34ad7dc369b7183ec383908aff3da2f6e5ec"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Feb 07 13:32:07 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Feb 07 16:08:57 2014 -0800"
      },
      "message": "sysfs, kobject: add sysfs wrapper for kernfs_enable_ns()\n\nCurrently, kobject is invoking kernfs_enable_ns() directly.  This is\nfine now as sysfs and kernfs are enabled and disabled together.  If\nsysfs is disabled, kernfs_enable_ns() is switched to dummy\nimplementation too and everything is fine; however, kernfs will soon\nhave its own config option CONFIG_KERNFS and !SYSFS \u0026\u0026 KERNFS will be\npossible, which can make kobject call into non-dummy\nkernfs_enable_ns() with NULL kernfs_node pointers leading to an oops.\n\nIntroduce sysfs_enable_ns() which is a wrapper around\nkernfs_enable_ns() so that it can be made a noop depending only on\nCONFIG_SYSFS regardless of the planned CONFIG_KERNFS.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "3eef34ad7dc369b7183ec383908aff3da2f6e5ec",
      "tree": "fac6ef1dd497adeff55fae499d953d5d51061867",
      "parents": [
        "0c23b2259a4850494e2c53e864ea840597c6cdd3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Feb 07 13:32:07 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Feb 07 16:05:35 2014 -0800"
      },
      "message": "kernfs: implement kernfs_get_parent(), kernfs_name/path() and friends\n\nkernfs_node-\u003eparent and -\u003ename are currently marked as \"published\"\nindicating that kernfs users may access them directly; however, those\nfields may get updated by kernfs_rename[_ns]() and unrestricted access\nmay lead to erroneous values or oops.\n\nProtect -\u003eparent and -\u003ename updates with a irq-safe spinlock\nkernfs_rename_lock and implement the following accessors for these\nfields.\n\n* kernfs_name()\t\t- format the node\u0027s name into the specified buffer\n* kernfs_path()\t\t- format the node\u0027s path into the specified buffer\n* pr_cont_kernfs_name()\t- pr_cont a node\u0027s name (doesn\u0027t need buffer)\n* pr_cont_kernfs_path()\t- pr_cont a node\u0027s path (doesn\u0027t need buffer)\n* kernfs_get_parent()\t- pin and return a node\u0027s parent\n\nAll can be called under any context.  The recursive sysfs_pathname()\nin fs/sysfs/dir.c is replaced with kernfs_path() and\nsysfs_rename_dir_ns() is updated to use kernfs_get_parent() instead of\ndereferencing parent directly.\n\nv2: Dummy definition of kernfs_path() for !CONFIG_KERNFS was missing\n    static inline making it cause a lot of build warnings.  Add it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "0c23b2259a4850494e2c53e864ea840597c6cdd3",
      "tree": "f4d061ea433e443edd43d1f0a186e06aeb2ed95e",
      "parents": [
        "2536390da0d300b2734c721235c082498879841d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 03 14:09:15 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Feb 07 16:00:41 2014 -0800"
      },
      "message": "kernfs: implement kernfs_node_from_dentry(), kernfs_root_from_sb() and kernfs_rename()\n\nImplement helpers to determine node from dentry and root from\nsuper_block.  Also add a kernfs_rename_ns() wrapper which assumes NULL\nnamespace.  These generally make sense and will be used by cgroup.\n\nv2: Some dummy implementations for !CONFIG_SYSFS was missing.  Fixed.\n    Reported by kbuild test robot.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: kbuild test robot \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "2536390da0d300b2734c721235c082498879841d",
      "tree": "e0b4ccccb541a2c71d08dad217a5725fc7b8a900",
      "parents": [
        "4d3773c4bb41ed5228f1ab7a4a52b79e17b10515"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 03 14:09:14 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Feb 07 16:00:40 2014 -0800"
      },
      "message": "kernfs: add kernfs_open_file-\u003epriv\n\nAdd a private data field to be used by kernfs file operations.  This\ngenerally makes sense and will be used by cgroup.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "4d3773c4bb41ed5228f1ab7a4a52b79e17b10515",
      "tree": "71c30d7009b36d22e9aab816f3dc7e373bb5f1e9",
      "parents": [
        "d35258ef702cca0c4e66d799f8e38b78c02ce8a5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 03 14:09:13 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Feb 07 15:52:48 2014 -0800"
      },
      "message": "kernfs: implement kernfs_ops-\u003eatomic_write_len\n\nA write to a kernfs_node is buffered through a kernel buffer.  Writes\n\u003c\u003d PAGE_SIZE are performed atomically, while larger ones are executed\nin PAGE_SIZE chunks.  While this is enough for sysfs, cgroup which is\nscheduled to be converted to use kernfs needs a bit more control over\nit.\n\nThis patch adds kernfs_ops-\u003eatomic_write_len.  If not set (zero), the\nbehavior stays the same.  If set, writes upto the size are executed\natomically and larger writes are rejected with -E2BIG.\n\nA different implementation strategy would be allowing configuring\nchunking size while making the original write size available to the\nwrite method; however, such strategy, while being more complicated,\ndoesn\u0027t really buy anything.  If the write implementation has to\nhandle chunking, the specific chunk size shouldn\u0027t matter all that\nmuch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "d35258ef702cca0c4e66d799f8e38b78c02ce8a5",
      "tree": "f3d98795cf620ad32edd4df982d015cfeedd1a97",
      "parents": [
        "b9c9dad0c457d32cf8c7d2e413463c8414c7a7a7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 03 14:09:12 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Feb 07 15:52:48 2014 -0800"
      },
      "message": "kernfs: allow nodes to be created in the deactivated state\n\nCurrently, kernfs_nodes are made visible to userland on creation,\nwhich makes it difficult for kernfs users to atomically succeed or\nfail creation of multiple nodes.  In addition, if something fails\nafter creating some nodes, the created nodes might already be in use\nand their active refs need to be drained for removal, which has the\npotential to introduce tricky reverse locking dependency on active_ref\ndepending on how the error path is synchronized.\n\nThis patch introduces per-root flag KERNFS_ROOT_CREATE_DEACTIVATED.\nIf set, all nodes under the root are created in the deactivated state\nand stay invisible to userland until explicitly enabled by the new\nkernfs_activate() API.  Also, nodes which have never been activated\nare guaranteed to bypass draining on removal thus allowing error paths\nto not worry about lockding dependency on active_ref draining.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "6a7fed4eefddad48224f1c9d534b4e262f0897f6",
      "tree": "28c347ffd4cbb92146fde47768c396c088c44a95",
      "parents": [
        "90c07c895c87d38db100b6afcb686ab3ef0d6a64"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 03 14:09:10 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Feb 07 15:52:48 2014 -0800"
      },
      "message": "kernfs: implement kernfs_syscall_ops-\u003eremount_fs() and -\u003eshow_options()\n\nAdd two super_block related syscall callbacks -\u003eremount_fs() and\n-\u003eshow_options() to kernfs_syscall_ops.  These simply forward the\nmatching super_operations.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "90c07c895c87d38db100b6afcb686ab3ef0d6a64",
      "tree": "22ff946cdcd306f0ba5ce998832db0028bae3aab",
      "parents": [
        "07c7530dd46728e25e938d0eb291f8085435c365"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 03 14:09:09 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Feb 07 15:52:48 2014 -0800"
      },
      "message": "kernfs: rename kernfs_dir_ops to kernfs_syscall_ops\n\nWe\u0027re gonna need non-dir syscall callbacks, which will make dir_ops a\nmisnomer.  Let\u0027s rename kernfs_dir_ops to kernfs_syscall_ops.\n\nThis is pure rename.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "07c7530dd46728e25e938d0eb291f8085435c365",
      "tree": "af31cc0ecb79794e1294b7781350afc45c1657d2",
      "parents": [
        "ce8b04aa6c9bdf211b921fdd18c040ea29516b97"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 03 14:09:08 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Feb 07 15:52:48 2014 -0800"
      },
      "message": "kernfs: invoke dir_ops while holding active ref of the target node\n\nkernfs_dir_ops are currently being invoked without any active\nreference, which makes it tricky for the invoked operations to\ndetermine whether the objects associated those nodes are safe to\naccess and will remain that way for the duration of such operations.\n\nkernfs already has active_ref mechanism to deal with this which makes\nthe removal of a given node the synchronization point for gating the\nfile operations.  There\u0027s no reason for dir_ops to be any different.\nUpdate the dir_ops handling so that active_ref is held while the\ndir_ops are executing.  This guarantees that while a dir_ops is\nexecuting the target nodes stay alive.\n\nAs kernfs_dir_ops doesn\u0027t have any in-kernel user at this point, this\ndoesn\u0027t affect anybody.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "ce8b04aa6c9bdf211b921fdd18c040ea29516b97",
      "tree": "9c45ed4ce13c1e956397bcef8d2f500dd8fac805",
      "parents": [
        "0b60f9ead5d4816e7e3d6e28f4a0d22d4a1b2513"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 03 14:03:05 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Feb 07 15:42:41 2014 -0800"
      },
      "message": "sysfs, driver-core: remove unused {sysfs|device}_schedule_callback_owner()\n\nAll device_schedule_callback_owner() users are converted to use\ndevice_remove_file_self().  Remove now unused\n{sysfs|device}_schedule_callback_owner().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "6b0afc2a21726b2d6b6aa441af40cafaf5405cc8",
      "tree": "42db14d4525a9f7a248fda6bb56da7823bd86e12",
      "parents": [
        "81c173cb5e87fbb47ccd80630faefe39bbf68449"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 03 14:03:01 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Feb 07 15:42:41 2014 -0800"
      },
      "message": "kernfs, sysfs, driver-core: implement kernfs_remove_self() and its wrappers\n\nSometimes it\u0027s necessary to implement a node which wants to delete\nnodes including itself.  This isn\u0027t straightforward because of kernfs\nactive reference.  While a file operation is in progress, an active\nreference is held and kernfs_remove() waits for all such references to\ndrain before completing.  For a self-deleting node, this is a deadlock\nas kernfs_remove() ends up waiting for an active reference that itself\nis sitting on top of.\n\nThis currently is worked around in the sysfs layer using\nsysfs_schedule_callback() which makes such removals asynchronous.\nWhile it works, it\u0027s rather cumbersome and inherently breaks\nsynchronicity of the operation - the file operation which triggered\nthe operation may complete before the removal is finished (or even\nstarted) and the removal may fail asynchronously.  If a removal\noperation is immmediately followed by another operation which expects\nthe specific name to be available (e.g. removal followed by rename\nonto the same name), there\u0027s no way to make the latter operation\nreliable.\n\nThe thing is there\u0027s no inherent reason for this to be asynchrnous.\nAll that\u0027s necessary to do this synchronous is a dedicated operation\nwhich drops its own active ref and deactivates self.  This patch\nimplements kernfs_remove_self() and its wrappers in sysfs and driver\ncore.  kernfs_remove_self() is to be called from one of the file\noperations, drops the active ref the task is holding, removes the self\nnode, and restores active ref to the dead node so that the ref is\nbalanced afterwards.  __kernfs_remove() is updated so that it takes an\nearly exit if the target node is already fully removed so that the\nactive ref restored by kernfs_remove_self() after removal doesn\u0027t\nconfuse the deactivation path.\n\nThis makes implementing self-deleting nodes very easy.  The normal\nremoval path doesn\u0027t even need to be changed to use\nkernfs_remove_self() for the self-deleting node.  The method can\ninvoke kernfs_remove_self() on itself before proceeding the normal\nremoval path.  kernfs_remove() invoked on the node by the normal\ndeletion path will simply be ignored.\n\nThis will replace sysfs_schedule_callback().  A subtle feature of\nsysfs_schedule_callback() is that it collapses multiple invocations -\neven if multiple removals are triggered, the removal callback is run\nonly once.  An equivalent effect can be achieved by testing the return\nvalue of kernfs_remove_self() - only the one which gets %true return\nvalue should proceed with actual deletion.  All other instances of\nkernfs_remove_self() will wait till the enclosing kernfs operation\nwhich invoked the winning instance of kernfs_remove_self() finishes\nand then return %false.  This trivially makes all users of\nkernfs_remove_self() automatically show correct synchronous behavior\neven when there are multiple concurrent operations - all \"echo 1 \u003e\ndelete\" instances will finish only after the whole operation is\ncompleted by one of the instances.\n\nNote that manipulation of active ref is implemented in separate public\nfunctions - kernfs_[un]break_active_protection().\nkernfs_remove_self() is the only user at the moment but this will be\nused to cater to more complex cases.\n\nv2: For !CONFIG_SYSFS, dummy version kernfs_remove_self() was missing\n    and sysfs_remove_file_self() had incorrect return type.  Fix it.\n    Reported by kbuild test bot.\n\nv3: kernfs_[un]break_active_protection() separated out from\n    kernfs_remove_self() and exposed as public API.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: kbuild test robot \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "81c173cb5e87fbb47ccd80630faefe39bbf68449",
      "tree": "7b5aaa2255ac62f2879e2431062f9b96a38e8574",
      "parents": [
        "182fd64b66342219d6fcf2b84d337529d120d95c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 03 14:03:00 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Feb 07 15:42:41 2014 -0800"
      },
      "message": "kernfs: remove KERNFS_REMOVED\n\nKERNFS_REMOVED is used to mark half-initialized and dying nodes so\nthat they don\u0027t show up in lookups and deny adding new nodes under or\nrenaming it; however, its role overlaps that of deactivation.\n\nIt\u0027s necessary to deny addition of new children while removal is in\nprogress; however, this role considerably intersects with deactivation\n- KERNFS_REMOVED prevents new children while deactivation prevents new\nfile operations.  There\u0027s no reason to have them separate making\nthings more complex than necessary.\n\nThis patch removes KERNFS_REMOVED.\n\n* Instead of KERNFS_REMOVED, each node now starts its life\n  deactivated.  This means that we now use both atomic_add() and\n  atomic_sub() on KN_DEACTIVATED_BIAS, which is INT_MIN.  The compiler\n  generates an overflow warnings when negating INT_MIN as the negation\n  can\u0027t be represented as a positive number.  Nothing is actually\n  broken but let\u0027s bump BIAS by one to avoid the warnings for archs\n  which negates the subtrahend..\n\n* A new helper kernfs_active() which tests whether kn-\u003eactive \u003e\u003d 0 is\n  added for convenience and lockdep annotation.  All KERNFS_REMOVED\n  tests are replaced with negated kernfs_active() tests.\n\n* __kernfs_remove() is updated to deactivate, but not drain, all nodes\n  in the subtree instead of setting KERNFS_REMOVED.  This removes\n  deactivation from kernfs_deactivate(), which is now renamed to\n  kernfs_drain().\n\n* Sanity check on KERNFS_REMOVED in kernfs_put() is replaced with\n  checks on the active ref.\n\n* Some comment style updates in the affected area.\n\nv2: Reordered before removal path restructuring.  kernfs_active()\n    dropped and kernfs_get/put_active() used instead.  RB_EMPTY_NODE()\n    used in the lookup paths.\n\nv3: Reverted most of v2 except for creating a new node with\n    KN_DEACTIVATED_BIAS.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "182fd64b66342219d6fcf2b84d337529d120d95c",
      "tree": "f8e0377fa5cdf90ea11245fd4f028c07ada4a5cd",
      "parents": [
        "988cd7afb3f37598891ca70b4c6eb914c338c46a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 03 14:02:59 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Feb 07 15:42:40 2014 -0800"
      },
      "message": "kernfs: remove KERNFS_ACTIVE_REF and add kernfs_lockdep()\n\nThere currently are two mechanisms gating active ref lockdep\nannotations - KERNFS_LOCKDEP flag and KERNFS_ACTIVE_REF type mask.\nThe former disables lockdep annotations in kernfs_get/put_active()\nwhile the latter disables all of kernfs_deactivate().\n\nWhile KERNFS_ACTIVE_REF also behaves as an optimization to skip the\ndeactivation step for non-file nodes, the benefit is marginal and it\nneedlessly diverges code paths.  Let\u0027s drop KERNFS_ACTIVE_REF.\n\nWhile at it, add a test helper kernfs_lockdep() to test KERNFS_LOCKDEP\nflag so that it\u0027s more convenient and the related code can be compiled\nout when not enabled.\n\nv2: Refreshed on top of (\"kernfs: make kernfs_deactivate() honor\n    KERNFS_LOCKDEP flag\").  As the earlier patch already added\n    KERNFS_LOCKDEP tests to kernfs_deactivate(), those additions are\n    dropped from this patch and the existing ones are simply converted\n    to kernfs_lockdep().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "988cd7afb3f37598891ca70b4c6eb914c338c46a",
      "tree": "cea29f9fe0d8057441f3350235ec1666ff231d7a",
      "parents": [
        "ccf02aaf8167bb8bfb3c17c01c843d309b872671"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 03 14:02:58 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Feb 07 15:42:40 2014 -0800"
      },
      "message": "kernfs: remove kernfs_addrm_cxt\n\nkernfs_addrm_cxt and the accompanying kernfs_addrm_start/finish() were\nadded because there were operations which should be performed outside\nkernfs_mutex after adding and removing kernfs_nodes.  The necessary\noperations were recorded in kernfs_addrm_cxt and performed by\nkernfs_addrm_finish(); however, after the recent changes which\nrelocated deactivation and unmapping so that they\u0027re performed\ndirectly during removal, the only operation kernfs_addrm_finish()\nperforms is kernfs_put(), which can be moved inside the removal path\ntoo.\n\nThis patch moves the kernfs_put() of the base ref to __kernfs_remove()\nand remove kernfs_addrm_cxt and kernfs_addrm_start/finish().\n\n* kernfs_add_one() is updated to grab and release kernfs_mutex itself.\n  sysfs_addrm_start/finish() invocations around it are removed from\n  all users.\n\n* __kernfs_remove() puts an unlinked node directly instead of chaining\n  it to kernfs_addrm_cxt.  Its callers are updated to grab and release\n  kernfs_mutex instead of calling kernfs_addrm_start/finish() around\n  it.\n\nv2: Rebased on top of \"kernfs: associate a new kernfs_node with its\n    parent on creation\" which dropped @parent from kernfs_add_one().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "abd54f028ec30976d6e797e7474ec91d96186a0c",
      "tree": "3fc9f5240ec0dfdcb210499878e08a18a678157f",
      "parents": [
        "a6607930b6cd829fc7f680b48a937d827e0bb931"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 03 14:02:55 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Feb 07 15:42:40 2014 -0800"
      },
      "message": "kernfs: replace kernfs_node-\u003eu.completion with kernfs_root-\u003edeactivate_waitq\n\nkernfs_node-\u003eu.completion is used to notify deactivation completion\nfrom kernfs_put_active() to kernfs_deactivate().  We now allow\nmultiple racing removals of the same node and the current removal\nscheme is no longer correct - kernfs_remove() invocation may return\nbefore the node is properly deactivated if it races against another\nremoval.  The removal path will be restructured to address the issue.\n\nTo help such restructure which requires supporting multiple waiters,\nthis patch replaces kernfs_node-\u003eu.completion with\nkernfs_root-\u003edeactivate_waitq.  This makes deactivation event\nnotifications share a per-root waitqueue_head; however, the wait path\nis quite cold and this will also allow shaving one pointer off\nkernfs_node.\n\nv2: Refreshed on top of (\"kernfs: make kernfs_deactivate() honor\n    KERNFS_LOCKDEP flag\").\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "7b383bef25e493cc4f047e44ebd6c3ccfd6d1cc5",
      "tree": "4a8379bb6d5929cf72c916da8e5bc7532aa43841",
      "parents": [
        "87af5e5c22568201dfbda5cac9c76e96982adc9c",
        "cb8ee1a3d429f8898972c869dd4792afb04e961a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 02 11:30:08 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 02 11:30:08 2014 -0800"
      },
      "message": "Merge branch \u0027slab/next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux\n\nPull SLAB changes from Pekka Enberg:\n \"Random bug fixes that have accumulated in my inbox over the past few\n  months\"\n\n* \u0027slab/next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux:\n  mm: Fix warning on make htmldocs caused by slab.c\n  mm: slub: work around unneeded lockdep warning\n  mm: sl[uo]b: fix misleading comments\n  slub: Fix possible format string bug.\n  slub: use lockdep_assert_held\n  slub: Fix calculation of cpu slabs\n  slab.h: remove duplicate kmalloc declaration and fix kernel-doc warnings\n"
    },
    {
      "commit": "efc518eb318c4d776933c23e7b82c2e5402b62de",
      "tree": "ee9100af7dd17039524c7833e0128de49eab5be1",
      "parents": [
        "fea8893da7c52906caa1a8dc3199f4b2ed3b8dbd",
        "d22e6338db7f613dd4f6095c190682fcc519e4b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 01 10:43:45 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 01 10:43:45 2014 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs fixes from Al Viro:\n \"Several obvious fixes\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  Fix mountpoint reference leakage in linkat\n  hfsplus: use xattr handlers for removexattr\n  Typo in compat_sys_lseek() declaration\n  fs/super.c: sync ro remount after blocking writers\n  vfs: unexport the getname() symbol\n"
    },
    {
      "commit": "8a1f006ad302ea178aefb1f8c67e679c696289e9",
      "tree": "8ba312b39070556d2062a9f90b1a7fa394041d78",
      "parents": [
        "14864a52cd8189e8567df8351d9fc7e435133abd",
        "a1800acaf7d1c2bf6d68b9a8f4ab8560cc66555a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 31 15:39:07 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 31 15:39:07 2014 -0800"
      },
      "message": "Merge tag \u0027nfs-for-3.14-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client bugfixes from Trond Myklebust:\n \"Highlights:\n\n   - Fix several races in nfs_revalidate_mapping\n   - NFSv4.1 slot leakage in the pNFS files driver\n   - Stable fix for a slot leak in nfs40_sequence_done\n   - Don\u0027t reject NFSv4 servers that support ACLs with only ALLOW aces\"\n\n* tag \u0027nfs-for-3.14-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  nfs: initialize the ACL support bits to zero.\n  NFSv4.1: Cleanup\n  NFSv4.1: Clean up nfs41_sequence_done\n  NFSv4: Fix a slot leak in nfs40_sequence_done\n  NFSv4.1 free slot before resending I/O to MDS\n  nfs: add memory barriers around NFS_INO_INVALID_DATA and NFS_INO_INVALIDATING\n  NFS: Fix races in nfs_revalidate_mapping\n  sunrpc: turn warn_gssd() log message into a dprintk()\n  NFS: fix the handling of NFS_INO_INVALID_DATA flag in nfs_revalidate_mapping\n  nfs: handle servers that support only ALLOW ACE type.\n"
    },
    {
      "commit": "4e13c5d0212f25d69a97606b9d5a85edb52a7737",
      "tree": "002f59b9151f42a6388656762f0e7963d08b89ef",
      "parents": [
        "deb2a1d29bf0168ff2575e714e5c1f156be663fb",
        "5259a06ef97068b710f45d092a587e8d740f750f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 31 15:31:23 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 31 15:31:23 2014 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending\n\nPull SCSI target updates from Nicholas Bellinger:\n \"The highlights this round include:\n\n  - add support for SCSI Referrals (Hannes)\n  - add support for T10 DIF into target core (nab + mkp)\n  - add support for T10 DIF emulation in FILEIO + RAMDISK backends (Sagi + nab)\n  - add support for T10 DIF -\u003e bio_integrity passthrough in IBLOCK backend (nab)\n  - prep changes to iser-target for \u003e\u003d v3.15 T10 DIF support (Sagi)\n  - add support for qla2xxx N_Port ID Virtualization - NPIV (Saurav + Quinn)\n  - allow percpu_ida_alloc() to receive task state bitmask (Kent)\n  - fix \u003e\u003d v3.12 iscsi-target session reset hung task regression (nab)\n  - fix \u003e\u003d v3.13 percpu_ref se_lun-\u003elun_ref_active race (nab)\n  - fix a long-standing network portal creation race (Andy)\"\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (51 commits)\n  target: Fix percpu_ref_put race in transport_lun_remove_cmd\n  target/iscsi: Fix network portal creation race\n  target: Report bad sector in sense data for DIF errors\n  iscsi-target: Convert gfp_t parameter to task state bitmask\n  iscsi-target: Fix connection reset hang with percpu_ida_alloc\n  percpu_ida: Make percpu_ida_alloc + callers accept task state bitmask\n  iscsi-target: Pre-allocate more tags to avoid ack starvation\n  qla2xxx: Configure NPIV fc_vport via tcm_qla2xxx_npiv_make_lport\n  qla2xxx: Enhancements to enable NPIV support for QLOGIC ISPs with TCM/LIO.\n  qla2xxx: Fix scsi_host leak on qlt_lport_register callback failure\n  IB/isert: pass scatterlist instead of cmd to fast_reg_mr routine\n  IB/isert: Move fastreg descriptor creation to a function\n  IB/isert: Avoid frwr notation, user fastreg\n  IB/isert: seperate connection protection domains and dma MRs\n  tcm_loop: Enable DIF/DIX modes in SCSI host LLD\n  target/rd: Add DIF protection into rd_execute_rw\n  target/rd: Add support for protection SGL setup + release\n  target/rd: Refactor rd_build_device_space + rd_release_device_space\n  target/file: Add DIF protection support to fd_execute_rw\n  target/file: Add DIF protection init/format support\n  ...\n"
    },
    {
      "commit": "e5fbf67dab3341133d4ee3b1c8ce780e087733ba",
      "tree": "d49ae45174aa4158f63aa3ce12acaf94a146422e",
      "parents": [
        "807612db2f9940b9fa6deaef054eb16d51bd3e00"
      ],
      "author": {
        "name": "Stephan Springl",
        "email": "springl-kernel@bfw-online.de",
        "time": "Thu Jan 30 17:56:23 2014 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 31 14:32:24 2014 -0500"
      },
      "message": "Typo in compat_sys_lseek() declaration\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b399c46ea0070671f3abbe1915d26076101a42f2",
      "tree": "8945606976fc46c3446c09f8a9e0d4f45f6c408e",
      "parents": [
        "b890eb4ecc718907223a3b7b7b069b59b33f28ef",
        "6c3df5da67f1f53df78c7e20cd53a481dc28eade"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 31 09:31:14 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 31 09:31:14 2014 -0800"
      },
      "message": "Merge branch \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media\n\nPull media updates from Mauro Carvalho Chehab:\n - a new jpeg codec driver for Samsung Exynos (jpeg-hw-exynos4)\n - a new dvb frontend for ds2103 chipset (m88ds2103)\n - a new sensor driver for Samsung S5K5BAF UXGA (s5k5baf)\n - new drivers for R-Car VSP1\n - a new radio driver: radio-raremono\n - a new tuner driver for ts2022 chipset (m88ts2022)\n - the analog part of em28xx is now a separate module that only\n   load/runs if the device is not a pure digital TV device\n - added a staging driver for bcm2048 radio devices\n - the omap 2 video driver (omap24xx) was moved to staging.  This driver\n   is for an old hardware and uses a deprecated Kernel internal API.  If\n   nobody cares enough to fix it, it would be removed on a couple Kernel\n   releases\n - the sn9c102 driver was moved to staging.  This driver was replaced by\n   gspca, and disabled on some distros, as almost all devices are known\n   to work properly with gspca.  It should be removed from kernel on a\n   couple Kernel releases\n - lots of driver fixes, improvements and cleanups\n\n* \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (421 commits)\n  [media] media: v4l2-dev: fix video device index assignment\n  [media] rc-core: reuse device numbers\n  [media] em28xx-cards: properly initialize the device bitmap\n  [media] Staging: media: Fix line length exceeding 80 characters in as102_drv.c\n  [media] Staging: media: Fix line length exceeding 80 characters in as102_fe.c\n  [media] Staging: media: Fix quoted string split across line in as102_fe.c\n  [media] media: st-rc: Add reset support\n  [media] m2m-deinterlace: fix allocated struct type\n  [media] radio-usb-si4713: fix sparse non static symbol warnings\n  [media] em28xx-audio: remove needless check before usb_free_coherent()\n  [media] au0828: Fix sparse non static symbol warning\n  Revert \"[media] go7007-usb: only use go-\u003edev after allocated\"\n  [media] em28xx-audio: provide an error code when URB submit fails\n  [media] em28xx: fix check for audio only usb interfaces when changing the usb alternate setting\n  [media] em28xx: fix usb alternate setting for analog and digital video endpoints \u003e 0\n  [media] em28xx: make \u0027em28xx_ctrl_ops\u0027 static\n  em28xx-alsa: Fix error patch for init/fini\n  [media] em28xx-audio: flush work at .fini\n  [media] drxk: remove the option to load firmware asynchronously\n  [media] em28xx: adjust period size at runtime\n  ...\n"
    },
    {
      "commit": "aafd9d6a46745926648cb5d0b68b108e79ceb8d4",
      "tree": "b099dece2ff08e57d141af686ffbb24dc663c05b",
      "parents": [
        "595bf999e3a864f40e049c67c42ecee50fb7a78a",
        "a2b4c607c93a0850c8e3d90688cf3bd08576b986"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 31 09:02:51 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 31 09:02:51 2014 -0800"
      },
      "message": "Merge branch \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer/dynticks updates from Ingo Molnar:\n \"This tree contains misc dynticks updates: a fix and three cleanups\"\n\n* \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  sched/nohz: Fix overflow error in scheduler_tick_max_deferment()\n  nohz_full: fix code style issue of tick_nohz_full_stop_tick\n  nohz: Get timekeeping max deferment outside jiffies_lock\n  tick: Rename tick_check_idle() to tick_irq_enter()\n"
    },
    {
      "commit": "ab5318788c6725b6d5c95aff28e63af4c35a0e2c",
      "tree": "fb4a81d66ed06828948e3272ebe15088d405ec1e",
      "parents": [
        "14164b46fc994bcf82963ace00372cf808a31af1",
        "270750dbc18a71b23d660df110e433ff9616a2d4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 31 08:59:46 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 31 08:59:46 2014 -0800"
      },
      "message": "Merge branch \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull core debug changes from Ingo Molnar:\n \"This contains mostly kernel debugging related updates:\n\n   - make hung_task detection more configurable to distros\n   - add final bits for x86 UV NMI debugging, with related KGDB changes\n   - update the mailing-list of MAINTAINERS entries I\u0027m involved with\"\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  hung_task: Display every hung task warning\n  sysctl: Add neg_one as a standard constraint\n  x86/uv/nmi, kgdb/kdb: Fix UV NMI handler when KDB not configured\n  x86/uv/nmi: Fix Sparse warnings\n  kgdb/kdb: Fix no KDB config problem\n  MAINTAINERS: Restore \"L: linux-kernel@vger.kernel.org\" entries\n"
    },
    {
      "commit": "433a91ff5fa19e3eb70b12f7056f234aebd09ac2",
      "tree": "9d0af35284088374a2a203cde24c4a7360d7abec",
      "parents": [
        "26e4f2057516f1c457e0e95346a00303f983ad53"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "dave.hansen@linux.intel.com",
        "time": "Tue Jan 28 14:24:50 2014 -0800"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Fri Jan 31 13:40:34 2014 +0200"
      },
      "message": "mm: sl[uo]b: fix misleading comments\n\nOn x86, SLUB creates and handles \u003c\u003d8192-byte allocations internally.\nIt passes larger ones up to the allocator.  Saying \"up to order 2\" is,\nat best, ambiguous.  Is that order-1?  Or (order-2 bytes)?  Make\nit more clear.\n\nSLOB commits a similar sin.  It *handles* page-size requests, but the\ncomment says that it passes up \"all page size and larger requests\".\n\nSLOB also swaps around the order of the very-similarly-named\nKMALLOC_SHIFT_HIGH and KMALLOC_SHIFT_MAX #defines.  Make it\nconsistent with the order of the other two allocators.\n\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\n"
    },
    {
      "commit": "e7651b819e90da924991d727d3c007200a18670d",
      "tree": "e7a943b5bb56c384972944fd86767a3f079b8a98",
      "parents": [
        "060e8e3b6f8fc0ba97de2276249fbd80fa25b0a2",
        "cf93da7bcf450cb4595055d491a0519cb39e68ed"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 30 20:08:20 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 30 20:08:20 2014 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\nPull btrfs updates from Chris Mason:\n \"This is a pretty big pull, and most of these changes have been\n  floating in btrfs-next for a long time.  Filipe\u0027s properties work is a\n  cool building block for inheriting attributes like compression down on\n  a per inode basis.\n\n  Jeff Mahoney kicked in code to export filesystem info into sysfs.\n\n  Otherwise, lots of performance improvements, cleanups and bug fixes.\n\n  Looks like there are still a few other small pending incrementals, but\n  I wanted to get the bulk of this in first\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (149 commits)\n  Btrfs: fix spin_unlock in check_ref_cleanup\n  Btrfs: setup inode location during btrfs_init_inode_locked\n  Btrfs: don\u0027t use ram_bytes for uncompressed inline items\n  Btrfs: fix btrfs_search_slot_for_read backwards iteration\n  Btrfs: do not export ulist functions\n  Btrfs: rework ulist with list+rb_tree\n  Btrfs: fix memory leaks on walking backrefs failure\n  Btrfs: fix send file hole detection leading to data corruption\n  Btrfs: add a reschedule point in btrfs_find_all_roots()\n  Btrfs: make send\u0027s file extent item search more efficient\n  Btrfs: fix to catch all errors when resolving indirect ref\n  Btrfs: fix protection between walking backrefs and root deletion\n  btrfs: fix warning while merging two adjacent extents\n  Btrfs: fix infinite path build loops in incremental send\n  btrfs: undo sysfs when open_ctree() fails\n  Btrfs: fix snprintf usage by send\u0027s gen_unique_name\n  btrfs: fix defrag 32-bit integer overflow\n  btrfs: sysfs: list the NO_HOLES feature\n  btrfs: sysfs: don\u0027t show reserved incompat feature\n  btrfs: call permission checks earlier in ioctls and return EPERM\n  ...\n"
    },
    {
      "commit": "aa2e7100e38880db7907cb2b7ec6267b2b243771",
      "tree": "67f9d2479365398c07833d3fc4f794861f7da5b1",
      "parents": [
        "2def2ef2ae5f3990aabdbe8a755911902707d268",
        "7c094fd698de2f333fa39b6da213f880d40b9bfe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 30 18:44:44 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 30 18:44:44 2014 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (patches from Andrew Morton)\n\nMerge misc fixes from Andrew Morton:\n \"A few hotfixes and various leftovers which were awaiting other merges.\n\n  Mainly movement of zram into mm/\"\n\n* emailed patches fron Andrew Morton \u003cakpm@linux-foundation.org\u003e: (25 commits)\n  memcg: fix mutex not unlocked on memcg_create_kmem_cache fail path\n  Documentation/filesystems/vfs.txt: update file_operations documentation\n  mm, oom: base root bonus on current usage\n  mm: don\u0027t lose the SOFT_DIRTY flag on mprotect\n  mm/slub.c: fix page-\u003e_count corruption (again)\n  mm/mempolicy.c: fix mempolicy printing in numa_maps\n  zram: remove zram-\u003elock in read path and change it with mutex\n  zram: remove workqueue for freeing removed pending slot\n  zram: introduce zram-\u003etb_lock\n  zram: use atomic operation for stat\n  zram: remove unnecessary free\n  zram: delay pending free request in read path\n  zram: fix race between reset and flushing pending work\n  zsmalloc: add maintainers\n  zram: add zram maintainers\n  zsmalloc: add copyright\n  zram: add copyright\n  zram: remove old private project comment\n  zram: promote zram from staging\n  zsmalloc: move it under mm\n  ...\n"
    },
    {
      "commit": "cdfc83075fb76369a31e6c187d0cebcab9f8b9c8",
      "tree": "33d1cdca3e2cb610451ed30943189f55652bac4c",
      "parents": [
        "04a24ae45d018e177db7e4ae2d03a70f79149782",
        "b26a21c1eacdb7daf22a304fa857413df2650cfe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 30 17:20:32 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 30 17:20:32 2014 -0800"
      },
      "message": "Merge branch \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/ralf/upstream-linus\n\nPull MIPS updates from Ralf Baechle:\n \"The most notable new addition inside this pull request is the support\n  for MIPS\u0027s latest and greatest core called \"inter/proAptiv\".  The\n  patch series describes this core as follows.\n\n    \"The interAptiv is a power-efficient multi-core microprocessor\n     for use in system-on-chip (SoC) applications. The interAptiv combines\n     a multi-threading pipeline with a coherence manager to deliver improved\n     computational throughput and power efficiency. The interAptiv can\n     contain one to four MIPS32R3 interAptiv cores, system level\n     coherence manager with L2 cache, optional coherent I/O port,\n     and optional floating point unit.\"\n\n  The platform specific patches touch all 3 Broadcom families.  It adds\n  support for the new Broadcom/Netlogix XLP9xx Soc, building a common\n  BCM63XX SMP kernel for all BCM63XX SoCs regardless of core type/count\n  and full gpio button/led descriptions for BCM47xx.\n\n  The rest of the series are cleanups and bug fixes that are MIPS\n  generic and consist largely of changes that Imgtec/MIPS had published\n  in their linux-mti-3.10.git stable tree.  Random other cleanups and\n  patches preparing code to be merged in 3.15\"\n\n* \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (139 commits)\n  mips: select ARCH_MIGHT_HAVE_PC_SERIO\n  mips: delete non-required instances of include \u003clinux/init.h\u003e\n  MIPS: KVM: remove shadow_tlb code\n  MIPS: KVM: use common EHINV aware UNIQUE_ENTRYHI\n  mips/ide: flush dcache also if icache does not snoop dcache\n  MIPS: BCM47XX: fix position of cpu_wait disabling\n  MIPS: BCM63XX: select correct MIPS_L1_CACHE_SHIFT value\n  MIPS: update MIPS_L1_CACHE_SHIFT based on MIPS_L1_CACHE_SHIFT_\u003cN\u003e\n  MIPS: introduce MIPS_L1_CACHE_SHIFT_\u003cN\u003e\n  MIPS: ZBOOT: gather string functions into string.c\n  arch/mips/pci: don\u0027t check resource with devm_ioremap_resource\n  arch/mips/lantiq/xway: don\u0027t check resource with devm_ioremap_resource\n  bcma: gpio: don\u0027t cast u32 to unsigned long\n  ssb: gpio: add own IRQ domain\n  MIPS: BCM47XX: fix sparse warnings in board.c\n  MIPS: BCM47XX: add board detection for Linksys WRT54GS V1\n  MIPS: BCM47XX: fix detection for some boards\n  MIPS: BCM47XX: Enable buttons support on SSB\n  MIPS: BCM47XX: Convert WNDR4500 to new syntax\n  MIPS: BCM47XX: Use \"timer\" trigger for status LEDs\n  ...\n"
    },
    {
      "commit": "4bcec913d0a98d991c750034a04675443d1f10b5",
      "tree": "ce2e960ba26d50f09b6a7bd864b2b4d3c275e69b",
      "parents": [
        "03c7287dd22c18815964219c9a2e75054cd004df",
        "f878f84373aefda7f041a74b24a83b8b7dec1cf0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 30 17:07:18 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 30 17:07:18 2014 -0800"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\nPull more powerpc bits from Ben Herrenschmidt:\n \"Here are a few more powerpc bits for this merge window.  The bulk is\n  made of two pull requests from Scott and Anatolij that I had missed\n  previously (they arrived while I was away).  Since both their branches\n  are in -next independently, and the content has been around for a\n  little while, they can still go in.\n\n  The rest is mostly bug and regression fixes, a small series of\n  cleanups to our pseries cpuidle code (including moving it to the right\n  place), and one new cpuidle bakend for the powernv platform.  I also\n  wired up the new sched_attr syscalls\"\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (37 commits)\n  powerpc: Wire up sched_setattr and sched_getattr syscalls\n  powerpc/hugetlb: Replace __get_cpu_var with get_cpu_var\n  powerpc: Make sure \"cache\" directory is removed when offlining cpu\n  powerpc/mm: Fix mmap errno when MAP_FIXED is set and mapping exceeds the allowed address space\n  powerpc/powernv/cpuidle: Back-end cpuidle driver for powernv platform.\n  powerpc/pseries/cpuidle: smt-snooze-delay cleanup.\n  powerpc/pseries/cpuidle: Remove MAX_IDLE_STATE macro.\n  powerpc/pseries/cpuidle: Make cpuidle-pseries backend driver a non-module.\n  powerpc/pseries/cpuidle: Use cpuidle_register() for initialisation.\n  powerpc/pseries/cpuidle: Move processor_idle.c to drivers/cpuidle.\n  powerpc: Fix 32-bit frames for signals delivered when transactional\n  powerpc/iommu: Fix initialisation of DART iommu table\n  powerpc/numa: Fix decimal permissions\n  powerpc/mm: Fix compile error of pgtable-ppc64.h\n  powerpc: Fix hw breakpoints on !HAVE_HW_BREAKPOINT configurations\n  clk: corenet: Adds the clock binding\n  powerpc/booke64: Guard e6500 tlb handler with CONFIG_PPC_FSL_BOOK3E\n  powerpc/512x: dts: add MPC5125 clock specs\n  powerpc/512x: clk: support MPC5121/5123/5125 SoC variants\n  powerpc/512x: clk: enforce even SDHC divider values\n  ...\n"
    },
    {
      "commit": "597690cd02684b7e4904288e4b85797123a5093f",
      "tree": "f5d2a84771b9d532f2fe99a9cf4e0b51f5432e26",
      "parents": [
        "53d8ab29f8f6d67e37857b68189b38fa3d87dd8e",
        "bf705ad0c364ea375b3a5e89fa8a0e1c1fde994c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 30 16:58:05 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 30 16:58:05 2014 -0800"
      },
      "message": "Merge branch \u0027kbuild\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild\n\nPull kbuild changes from Michal Marek:\n - fix make -s detection with make-4.0\n - fix for scripts/setlocalversion when the kernel repository is a\n   submodule\n - do not hardcode \u0027;\u0027 in macros that expand to assembler code, as some\n   architectures\u0027 assemblers use a different character for newline\n - Fix passing --gdwarf-2 to the assembler\n\n* \u0027kbuild\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:\n  frv: Remove redundant debugging info flag\n  mn10300: Remove redundant debugging info flag\n  kbuild: Fix debugging info generation for .S files\n  arch: use ASM_NL instead of \u0027;\u0027 for assembler new line character in the macro\n  kbuild: Fix silent builds with make-4\n  Fix detectition of kernel git repository in setlocalversion script [take #2]\n"
    },
    {
      "commit": "31fc00bb788ffde7d8d861d8b2bba798ab445992",
      "tree": "d5d9f1c2a995446a4a688e825846c92d20160562",
      "parents": [
        "7bfb3de8a1b3bebc2dc68d381efe27448c0584c5"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Thu Jan 30 15:45:55 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 30 16:56:55 2014 -0800"
      },
      "message": "zsmalloc: add copyright\n\nAdd my copyright to the zsmalloc source code which I maintain.\n\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Nitin Gupta \u003cngupta@vflare.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bcf1647d0899666f0fb90d176abf63bae22abb7c",
      "tree": "6682b0feec718f594829770b4287afa2da266a0f",
      "parents": [
        "73f945505b9bf798d8c3ee830cb330dd6d7fb4c7"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Thu Jan 30 15:45:50 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 30 16:56:55 2014 -0800"
      },
      "message": "zsmalloc: move it under mm\n\nThis patch moves zsmalloc under mm directory.\n\nBefore that, description will explain why we have needed custom\nallocator.\n\nZsmalloc is a new slab-based memory allocator for storing compressed\npages.  It is designed for low fragmentation and high allocation success\nrate on large object, but \u003c\u003d PAGE_SIZE allocations.\n\nzsmalloc differs from the kernel slab allocator in two primary ways to\nachieve these design goals.\n\nzsmalloc never requires high order page allocations to back slabs, or\n\"size classes\" in zsmalloc terms.  Instead it allows multiple\nsingle-order pages to be stitched together into a \"zspage\" which backs\nthe slab.  This allows for higher allocation success rate under memory\npressure.\n\nAlso, zsmalloc allows objects to span page boundaries within the zspage.\nThis allows for lower fragmentation than could be had with the kernel\nslab allocator for objects between PAGE_SIZE/2 and PAGE_SIZE.  With the\nkernel slab allocator, if a page compresses to 60% of it original size,\nthe memory savings gained through compression is lost in fragmentation\nbecause another object of the same size can\u0027t be stored in the leftover\nspace.\n\nThis ability to span pages results in zsmalloc allocations not being\ndirectly addressable by the user.  The user is given an\nnon-dereferencable handle in response to an allocation request.  That\nhandle must be mapped, using zs_map_object(), which returns a pointer to\nthe mapped region that can be used.  The mapping is necessary since the\nobject data may reside in two different noncontigious pages.\n\nThe zsmalloc fulfills the allocation needs for zram perfectly\n\n[sjenning@linux.vnet.ibm.com: borrow Seth\u0027s quote]\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nAcked-by: Nitin Gupta \u003cngupta@vflare.org\u003e\nReviewed-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Bob Liu \u003cbob.liu@oracle.com\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Luigi Semenzato \u003csemenzato@google.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Seth Jennings \u003csjenning@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": "6897fc22ea01b562b55c6168592bcbd3ee62b006",
      "tree": "034c4b774880c2bbf8a9347acef749478a3443b0",
      "parents": [
        "0c692d07842a67d9aa6b8266a80e4ac460a5c1a2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu Jan 30 15:45:47 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 30 16:56:54 2014 -0800"
      },
      "message": "kernel: use lockless list for smp_call_function_single\n\nMake smp_call_function_single and friends more efficient by using a\nlockless list.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "07bacb3826d613bb651297a201dd2df8dd4fdee5",
      "tree": "298e1179b1a8a83aea33c2e3193d2f8e5c01dd8a",
      "parents": [
        "53d8ab29f8f6d67e37857b68189b38fa3d87dd8e"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Thu Jan 30 15:45:44 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 30 16:56:54 2014 -0800"
      },
      "message": "memblock, bootmem: restore goal for alloc_low\n\nNow we have memblock_virt_alloc_low to replace original bootmem api in\nswiotlb.\n\nBut we should not use BOOTMEM_LOW_LIMIT for arch that does not support\nCONFIG_NOBOOTMEM, as old api take 0.\n\n| #define alloc_bootmem_low(x) \\\n|        __alloc_bootmem_low(x, SMP_CACHE_BYTES, 0)\n|#define alloc_bootmem_low_pages_nopanic(x) \\\n|        __alloc_bootmem_low_nopanic(x, PAGE_SIZE, 0)\n\nand we have\n #define BOOTMEM_LOW_LIMIT __pa(MAX_DMA_ADDRESS)\nfor CONFIG_NOBOOTMEM.\n\nRestore goal to 0 to fix ia64 crash, that Tony found.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nReported-by: Tony Luck \u003ctony.luck@gmail.com\u003e\nTested-by: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "53d8ab29f8f6d67e37857b68189b38fa3d87dd8e",
      "tree": "3c770b58f0404c67b1b084f626dcafa8464c7512",
      "parents": [
        "f568849edac8611d603e00bd6cbbcfea09395ae6",
        "14424be4dbfa127001ad623869f7ee4c7635e991"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 30 11:40:10 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 30 11:40:10 2014 -0800"
      },
      "message": "Merge branch \u0027for-3.14/drivers\u0027 of git://git.kernel.dk/linux-block\n\nPull block IO driver changes from Jens Axboe:\n\n - bcache update from Kent Overstreet.\n\n - two bcache fixes from Nicholas Swenson.\n\n - cciss pci init error fix from Andrew.\n\n - underflow fix in the parallel IDE pg_write code from Dan Carpenter.\n   I\u0027m sure the 1 (or 0) users of that are now happy.\n\n - two PCI related fixes for sx8 from Jingoo Han.\n\n - floppy init fix for first block read from Jiri Kosina.\n\n - pktcdvd error return miss fix from Julia Lawall.\n\n - removal of IRQF_SHARED from the SEGA Dreamcast CD-ROM code from\n   Michael Opdenacker.\n\n - comment typo fix for the loop driver from Olaf Hering.\n\n - potential oops fix for null_blk from Raghavendra K T.\n\n - two fixes from Sam Bradshaw (Micron) for the mtip32xx driver, fixing\n   an OOM problem and a problem with handling security locked conditions\n\n* \u0027for-3.14/drivers\u0027 of git://git.kernel.dk/linux-block: (47 commits)\n  mg_disk: Spelling s/finised/finished/\n  null_blk: Null pointer deference problem in alloc_page_buffers\n  mtip32xx: Correctly handle security locked condition\n  mtip32xx: Make SGL container per-command to eliminate high order dma allocation\n  drivers/block/loop.c: fix comment typo in loop_config_discard\n  drivers/block/cciss.c:cciss_init_one(): use proper errnos\n  drivers/block/paride/pg.c: underflow bug in pg_write()\n  drivers/block/sx8.c: remove unnecessary pci_set_drvdata()\n  drivers/block/sx8.c: use module_pci_driver()\n  floppy: bail out in open() if drive is not responding to block0 read\n  bcache: Fix auxiliary search trees for key size \u003e cacheline size\n  bcache: Don\u0027t return -EINTR when insert finished\n  bcache: Improve bucket_prio() calculation\n  bcache: Add bch_bkey_equal_header()\n  bcache: update bch_bkey_try_merge\n  bcache: Move insert_fixup() to btree_keys_ops\n  bcache: Convert sorting to btree_keys\n  bcache: Convert debug code to btree_keys\n  bcache: Convert btree_iter to struct btree_keys\n  bcache: Refactor bset_tree sysfs stats\n  ...\n"
    },
    {
      "commit": "f568849edac8611d603e00bd6cbbcfea09395ae6",
      "tree": "b9472d640fe5d87426d38c9d81d946cf197ad3fb",
      "parents": [
        "d9894c228b11273e720bb63ba120d1d326fe9d94",
        "675675ada486dde5bf9aa51665e90706bff11a35"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 30 11:19:05 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 30 11:19:05 2014 -0800"
      },
      "message": "Merge branch \u0027for-3.14/core\u0027 of git://git.kernel.dk/linux-block\n\nPull core block IO changes from Jens Axboe:\n \"The major piece in here is the immutable bio_ve series from Kent, the\n  rest is fairly minor.  It was supposed to go in last round, but\n  various issues pushed it to this release instead.  The pull request\n  contains:\n\n   - Various smaller blk-mq fixes from different folks.  Nothing major\n     here, just minor fixes and cleanups.\n\n   - Fix for a memory leak in the error path in the block ioctl code\n     from Christian Engelmayer.\n\n   - Header export fix from CaiZhiyong.\n\n   - Finally the immutable biovec changes from Kent Overstreet.  This\n     enables some nice future work on making arbitrarily sized bios\n     possible, and splitting more efficient.  Related fixes to immutable\n     bio_vecs:\n\n        - dm-cache immutable fixup from Mike Snitzer.\n        - btrfs immutable fixup from Muthu Kumar.\n\n  - bio-integrity fix from Nic Bellinger, which is also going to stable\"\n\n* \u0027for-3.14/core\u0027 of git://git.kernel.dk/linux-block: (44 commits)\n  xtensa: fixup simdisk driver to work with immutable bio_vecs\n  block/blk-mq-cpu.c: use hotcpu_notifier()\n  blk-mq: for_each_* macro correctness\n  block: Fix memory leak in rw_copy_check_uvector() handling\n  bio-integrity: Fix bio_integrity_verify segment start bug\n  block: remove unrelated header files and export symbol\n  blk-mq: uses page-\u003elist incorrectly\n  blk-mq: use __smp_call_function_single directly\n  btrfs: fix missing increment of bi_remaining\n  Revert \"block: Warn and free bio if bi_end_io is not set\"\n  block: Warn and free bio if bi_end_io is not set\n  blk-mq: fix initializing request\u0027s start time\n  block: blk-mq: don\u0027t export blk_mq_free_queue()\n  block: blk-mq: make blk_sync_queue support mq\n  block: blk-mq: support draining mq queue\n  dm cache: increment bi_remaining when bi_end_io is restored\n  block: fixup for generic bio chaining\n  block: Really silence spurious compiler warnings\n  block: Silence spurious compiler warnings\n  block: Kill bio_pair_split()\n  ...\n"
    },
    {
      "commit": "d9894c228b11273e720bb63ba120d1d326fe9d94",
      "tree": "c9b91b716f281f5accf8860dfadb1ac95abf0090",
      "parents": [
        "dfa19426160046770b3a38985042df9c9760a25a",
        "ed47b062ce9546fbe1eebf9da6937df4c5035372"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 30 10:18:43 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 30 10:18:43 2014 -0800"
      },
      "message": "Merge branch \u0027for-3.14\u0027 of git://linux-nfs.org/~bfields/linux\n\nPull nfsd updates from Bruce Fields:\n - Handle some loose ends from the vfs read delegation support.\n   (For example nfsd can stop breaking leases on its own in a\n    fewer places where it can now depend on the vfs to.)\n - Make life a little easier for NFSv4-only configurations\n   (thanks to Kinglong Mee).\n - Fix some gss-proxy problems (thanks Jeff Layton).\n - miscellaneous bug fixes and cleanup\n\n* \u0027for-3.14\u0027 of git://linux-nfs.org/~bfields/linux: (38 commits)\n  nfsd: consider CLAIM_FH when handing out delegation\n  nfsd4: fix delegation-unlink/rename race\n  nfsd4: delay setting current_fh in open\n  nfsd4: minor nfs4_setlease cleanup\n  gss_krb5: use lcm from kernel lib\n  nfsd4: decrease nfsd4_encode_fattr stack usage\n  nfsd: fix encode_entryplus_baggage stack usage\n  nfsd4: simplify xdr encoding of nfsv4 names\n  nfsd4: encode_rdattr_error cleanup\n  nfsd4: nfsd4_encode_fattr cleanup\n  minor svcauth_gss.c cleanup\n  nfsd4: better VERIFY comment\n  nfsd4: break only delegations when appropriate\n  NFSD: Fix a memory leak in nfsd4_create_session\n  sunrpc: get rid of use_gssp_lock\n  sunrpc: fix potential race between setting use_gss_proxy and the upcall rpc_clnt\n  sunrpc: don\u0027t wait for write before allowing reads from use-gss-proxy file\n  nfsd: get rid of unused function definition\n  Define op_iattr for nfsd4_open instead using macro\n  NFSD: fix compile warning without CONFIG_NFSD_V3\n  ...\n"
    },
    {
      "commit": "9b0cd304f26b9fca140de15deeac2bf357d1f388",
      "tree": "03a0d74614865a5b776b2a98a433232013b1d369",
      "parents": [
        "ca2a650f3dfdc30d71d21bcbb04d2d057779f3f9",
        "ef64cf9d06049e4e9df661f3be60b217e476bee1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 29 20:49:12 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 29 20:49:12 2014 -0800"
      },
      "message": "Merge branch \u0027drm-next\u0027 of git://people.freedesktop.org/~airlied/linux\n\nPull drm updates from Dave Airlie:\n \"Been a bit busy, first week of kids school, and waiting on other trees\n  to go in before I could send this, so its a bit later than I\u0027d\n  normally like.\n\n  Highlights:\n   - core:\n      timestamp fixes, lots of misc cleanups\n   - new drivers:\n      bochs virtual vga\n   - vmwgfx:\n      major overhaul for their nextgen virt gpu.\n   - i915:\n      runtime D3 on HSW, watermark fixes, power well work, fbc fixes,\n      bdw is no longer prelim.\n   - nouveau:\n      gk110/208 acceleration, more pm groundwork, old overlay support\n   - radeon:\n      dpm rework and clockgating for CIK, pci config reset, big endian\n      fixes\n   - tegra:\n      panel support and DSI support, build as module, prime.\n   - armada, omap, gma500, rcar, exynos, mgag200, cirrus, ast:\n      fixes\n   - msm:\n      hdmi support for mdp5\"\n\n* \u0027drm-next\u0027 of git://people.freedesktop.org/~airlied/linux: (595 commits)\n  drm/nouveau: resume display if any later suspend bits fail\n  drm/nouveau: fix lock unbalance in nouveau_crtc_page_flip\n  drm/nouveau: implement hooks for needed for drm vblank timestamping support\n  drm/nouveau/disp: add a method to fetch info needed by drm vblank timestamping\n  drm/nv50: fill in crtc mode struct members from crtc_mode_fixup\n  drm/radeon/dce8: workaround for atom BlankCrtc table\n  drm/radeon/DCE4+: clear bios scratch dpms bit (v2)\n  drm/radeon: set si_notify_smc_display_change properly\n  drm/radeon: fix DAC interrupt handling on DCE5+\n  drm/radeon: clean up active vram sizing\n  drm/radeon: skip async dma init on r6xx\n  drm/radeon/runpm: don\u0027t runtime suspend non-PX cards\n  drm/radeon: add ring to fence trace functions\n  drm/radeon: add missing trace point\n  drm/radeon: fix VMID use tracking\n  drm: ast,cirrus,mgag200: use drm_can_sleep\n  drm/gma500: Lock struct_mutex around cursor updates\n  drm/i915: Fix the offset issue for the stolen GEM objects\n  DRM: armada: fix missing DRM_KMS_FB_HELPER select\n  drm/i915: Decouple GPU error reporting from ring initialisation\n  ...\n"
    },
    {
      "commit": "ca2a650f3dfdc30d71d21bcbb04d2d057779f3f9",
      "tree": "12e5f7f4dea5ba17cc82f2c633bbe9dbf725fb11",
      "parents": [
        "e9e352e9100b98aed1a5fb9e33355c29fb07d5b1",
        "15cec530e4bc7bed3f51cde8404f96fd28a8c7c5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 29 20:27:23 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 29 20:27:23 2014 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.infradead.org/users/vkoul/slave-dma\n\nPull slave-dma updates from Vinod Koul:\n - new driver for BCM2835 used in R-pi\n - new driver for MOXA ART\n - dma_get_any_slave_channel API for DT based systems\n - minor fixes and updates spread acrooss driver\n\n[ The fsl-ssi dual fifo mode support addition clashed badly with the\n  other changes to fsl-ssi that came in through the sound merge.  I did\n  a very rough cut at fixing up the conflict, but Nicolin Chen (author\n  of both sides) will need to verify and check things ]\n\n* \u0027for-linus\u0027 of git://git.infradead.org/users/vkoul/slave-dma: (36 commits)\n  dmaengine: mmp_pdma: fix mismerge\n  dma: pl08x: Export pl08x_filter_id\n  acpi-dma: align documentation with kernel-doc format\n  dma: fix vchan_cookie_complete() debug print\n  DMA: dmatest: extend the \"device\" module parameter to 32 characters\n  drivers/dma: fix error return code\n  dma: omap: Set debug level to debugging messages\n  dmaengine: fix kernel-doc style typos for few comments\n  dma: tegra: add support for Tegra148/124\n  dma: dw: use %pad instead of casting dma_addr_t\n  dma: dw: join split up messages\n  dma: dw: fix style of multiline comment\n  dmaengine: k3dma: fix sparse warnings\n  dma: pl330: Use dma_get_slave_channel() in the of xlate callback\n  dma: pl330: Differentiate between submitted and issued descriptors\n  dmaengine: sirf: Add device_slave_caps interface\n  DMA: Freescale: change BWC from 256 bytes to 1024 bytes\n  dmaengine: Add MOXA ART DMA engine driver\n  dmaengine: Add DMA_PRIVATE to BCM2835 driver\n  dma: imx-sdma: Assign a default script number for ROM firmware cases\n  ...\n"
    },
    {
      "commit": "b3a4bcaa5a56860610bd096829702f80273b5a67",
      "tree": "57a37e12d5fc8be6540e9f98cd381f6fb5e06654",
      "parents": [
        "17c7f85460d6b0e2bd11a736683bd81c4388474f",
        "dd1a175695edf662615e422d1c85eae875a411b2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 29 20:00:13 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 29 20:00:13 2014 -0800"
      },
      "message": "Merge tag \u0027iommu-updates-v3.14\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu\n\nPull IOMMU Updates from Joerg Roedel:\n \"A few patches have been queued up for this merge window:\n\n   - improvements for the ARM-SMMU driver (IOMMU_EXEC support, IOMMU\n     group support)\n   - updates and fixes for the shmobile IOMMU driver\n   - various fixes to generic IOMMU code and the Intel IOMMU driver\n   - some cleanups in IOMMU drivers (dev_is_pci() usage)\"\n\n* tag \u0027iommu-updates-v3.14\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (36 commits)\n  iommu/vt-d: Fix signedness bug in alloc_irte()\n  iommu/vt-d: free all resources if failed to initialize DMARs\n  iommu/vt-d, trivial: clean sparse warnings\n  iommu/vt-d: fix wrong return value of dmar_table_init()\n  iommu/vt-d: release invalidation queue when destroying IOMMU unit\n  iommu/vt-d: fix access after free issue in function free_dmar_iommu()\n  iommu/vt-d: keep shared resources when failed to initialize iommu devices\n  iommu/vt-d: fix invalid memory access when freeing DMAR irq\n  iommu/vt-d, trivial: simplify code with existing macros\n  iommu/vt-d, trivial: use defined macro instead of hardcoding\n  iommu/vt-d: mark internal functions as static\n  iommu/vt-d, trivial: clean up unused code\n  iommu/vt-d, trivial: check suitable flag in function detect_intel_iommu()\n  iommu/vt-d, trivial: print correct domain id of static identity domain\n  iommu/vt-d, trivial: refine support of 64bit guest address\n  iommu/vt-d: fix resource leakage on error recovery path in iommu_init_domains()\n  iommu/vt-d: fix a race window in allocating domain ID for virtual machines\n  iommu/vt-d: fix PCI device reference leakage on error recovery path\n  drm/msm: Fix link error with !MSM_IOMMU\n  iommu/vt-d: use dedicated bitmap to track remapping entry allocation status\n  ...\n"
    },
    {
      "commit": "f7a6ad9fa24e4511a143e2b7b8a0d55864fe2edf",
      "tree": "c8bdb1a08729439fc8846c024ded296b9ef3b988",
      "parents": [
        "9076e0cae70c5d6ddb9a0284a20885b2b8814416",
        "6ff4b105163223741f5a82804f9695221017ae42"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 29 19:56:20 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 29 19:56:20 2014 -0800"
      },
      "message": "Merge branch \u0027i2c/for-current\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux\n\nPull more i2c updates from Wolfram Sang:\n \"Mostly bugfixes, small but wanted cleanups, and Paul\u0027s init.h removal\n  applied\"\n\n* \u0027i2c/for-current\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:\n  i2c: rcar: fix NACK error code\n  i2c: update i2c_algorithm documentation\n  i2c: rcar: use devm_clk_get to ensure clock is properly ref-counted\n  i2c: rcar: do not print error if device nacks transfer\n  i2c: rely on driver core when sanitizing devices\n  i2c: delete non-required instances of include \u003clinux/init.h\u003e\n  i2c: acorn: is tristate and should use module.h\n  i2c: piix4: Standardize log messages\n  i2c: piix4: Use different message for AMD Auxiliary SMBus Controller\n  i2c: piix4: Add support for AMD ML and CZ SMBus changes\n"
    },
    {
      "commit": "9076e0cae70c5d6ddb9a0284a20885b2b8814416",
      "tree": "1b30be795ac206c48e59738cc57a71a393bf7337",
      "parents": [
        "b7a8399edfd7ad3da36d51513ea30a4708b02b52",
        "7c81c60f3789a082e141d7a013392af5f78db16a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 29 18:56:27 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 29 18:56:27 2014 -0800"
      },
      "message": "Merge branch \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging\n\nPull hwmon updates from Jean Delvare:\n \"This include it87 driver improvements, and a tree-wide change of my\n  e-mail address\"\n\n* \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:\n  Update Jean Delvare\u0027s e-mail address\n  hwmon: (it87) Print proper names for the IT8771E and IT8772E\n  hwmon: (it87) Add support for the ITE IT8603E\n"
    },
    {
      "commit": "1d494f36d1fde04188341bf3d3b1a14cdf6fb2c9",
      "tree": "b8849264f0e8e59b8466c6b6a2db9df71d1ee59a",
      "parents": [
        "19ba20f455a8e9cf15c12891e751fd73c9026292",
        "c044dc2132d19d8c643cdd340f21afcec177c046"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 29 18:08:37 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 29 18:08:37 2014 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nPull networking fixes from David Miller:\n \"Several fixups, of note:\n\n  1) Fix unlock of not held spinlock in RXRPC code, from Alexey\n     Khoroshilov.\n\n  2) Call pci_disable_device() from the correct shutdown path in bnx2x\n     driver, from Yuval Mintz.\n\n  3) Fix qeth build on s390 for some configurations, from Eugene\n     Crosser.\n\n  4) Cure locking bugs in bond_loadbalance_arp_mon(), from Ding\n     Tianhong.\n\n  5) Must do netif_napi_add() before registering netdevice in sky2\n     driver, from Stanislaw Gruszka.\n\n  6) Fix lost bug fix during merge due to code movement in ieee802154,\n     noticed and fixed by the eagle eyed Stephen Rothwell.\n\n  7) Get rid of resource leak in xen-netfront driver, from Annie Li.\n\n  8) Bounds checks in qlcnic driver are off by one, from Manish Chopra.\n\n  9) TPROXY can leak sockets when TCP early demux is enabled, fix from\n     Holger Eitzenberger\"\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (32 commits)\n  qeth: fix build of s390 allmodconfig\n  bonding: fix locking in bond_loadbalance_arp_mon()\n  tun: add device name(iff) field to proc fdinfo entry\n  DT: net: davinci_emac: \"ti, davinci-no-bd-ram\" property is actually optional\n  DT: net: davinci_emac: \"ti, davinci-rmii-en\" property is actually optional\n  bnx2x: Fix generic option settings\n  net: Fix warning on make htmldocs caused by skbuff.c\n  llc: remove noisy WARN from llc_mac_hdr_init\n  qlcnic: Fix loopback test failure\n  qlcnic: Fix tx timeout.\n  qlcnic: Fix initialization of vlan list.\n  qlcnic: Correct off-by-one errors in bounds checks\n  net: Document promote_secondaries\n  net: gre: use icmp_hdr() to get inner ip header\n  i40e: Add missing braces to i40e_dcb_need_reconfig()\n  xen-netfront: fix resource leak in netfront\n  net: 6lowpan: fixup for code movement\n  hyperv: Add support for physically discontinuous receive buffer\n  sky2: initialize napi before registering device\n  net: Fix memory leak if TPROXY used with TCP early demux\n  ...\n"
    },
    {
      "commit": "13293115d1c44df1077976473112d18f1877c390",
      "tree": "0c1c4d1cb478cdb9dc159ce9a7bc9e7425324a36",
      "parents": [
        "1ecd7450c0503d99675109a4cd43ecd735b9d876",
        "a4edbc1011513117ec5a96a7b24ae2f94e13f28f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 29 16:22:54 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 29 16:22:54 2014 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (patches from Andrew Morton)\n\nMerge random fixes from Andrew Morton:\n \"Random fixes.\n\n  I have one batch remaining for -rc1, mainly zram changes which await a\n  merge of Jens\u0027s trees\"\n\n* emailed patches fron Andrew Morton akpm@linux-foundation.org\u003e:\n  MAINTAINERS: ADI Linux development mailing lists: change to the new server\n  Documentation: fix multiple typo occurences s/KenelVersion/KernelVersion/\n  dma-debug: fix overlap detection\n  memblock: add limit checking to memblock_virt_alloc\n  mm/readahead.c: fix do_readahead() for no readpage(s)\n  mm/slub.c: do not VM_BUG_ON_PAGE() for temporary on-stack pages\n  slab: fix wrong retval on kmem_cache_create_memcg error path\n  s390/compat: change parameter types from unsigned long to compat_ulong_t\n  fs/compat: fix lookup_dcookie() parameter handling\n  fs/compat: fix parameter handling for compat readv/writev syscalls\n  mm/mempolicy.c: convert to pr_foo()\n  mm: numa: initialise numa balancing after jump label initialisation\n  mm/page-writeback.c: do not count anon pages as dirtyable memory\n  mm/page-writeback.c: fix dirty_balance_reserve subtraction from dirtyable memory\n  mm: document improved handling of swappiness\u003d\u003d0\n  lib/genalloc.c: add check gen_pool_dma_alloc() if dma pointer is not NULL\n"
    },
    {
      "commit": "d8d14bd09cddbaf0168d61af638455a26bd027ff",
      "tree": "7f52af4737d5435e87a25e767d04de33223fccc5",
      "parents": [
        "dfd948e32af2e7b28bcd7a490c0a30d4b8df2a36"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 29 14:05:46 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 29 16:22:40 2014 -0800"
      },
      "message": "fs/compat: fix lookup_dcookie() parameter handling\n\nCommit d5dc77bfeeab (\"consolidate compat lookup_dcookie()\") coverted all\narchitectures to the new compat_sys_lookup_dcookie() syscall.\n\nThe \"len\" paramater of the new compat syscall must have the type\ncompat_size_t in order to enforce zero extension for architectures where\nthe ABI requires that the caller of a function performed zero and/or\nsign extension to 64 bit of all parameters.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Hendrik Brueckner \u003cbrueckner@linux.vnet.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t[v3.10+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dfd948e32af2e7b28bcd7a490c0a30d4b8df2a36",
      "tree": "41f14ee51b5d57387a425b241c67f7d33446076b",
      "parents": [
        "4a404bea941ac3c62e11b88c9d16197334eee2f1"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 29 14:05:44 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 29 16:22:39 2014 -0800"
      },
      "message": "fs/compat: fix parameter handling for compat readv/writev syscalls\n\nWe got a report that the pwritev syscall does not work correctly in\ncompat mode on s390.\n\nIt turned out that with commit 72ec35163f9f (\"switch compat readv/writev\nvariants to COMPAT_SYSCALL_DEFINE\") we lost the zero extension of a\ncouple of syscall parameters because the some parameter types haven\u0027t\nbeen converted from unsigned long to compat_ulong_t.\n\nThis is needed for architectures where the ABI requires that the caller\nof a function performed zero and/or sign extension to 64 bit of all\nparameters.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Hendrik Brueckner \u003cbrueckner@linux.vnet.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t[v3.10+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1c3bfb2f67ef766de03f1f56bdfff9c8595ab14",
      "tree": "e06405192d674561bf2718ab03879c32103ae34e",
      "parents": [
        "a804552b9a15c931cfc2a92a2e0aed1add8b580a"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Jan 29 14:05:41 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 29 16:22:39 2014 -0800"
      },
      "message": "mm/page-writeback.c: do not count anon pages as dirtyable memory\n\nThe VM is currently heavily tuned to avoid swapping.  Whether that is\ngood or bad is a separate discussion, but as long as the VM won\u0027t swap\nto make room for dirty cache, we can not consider anonymous pages when\ncalculating the amount of dirtyable memory, the baseline to which\ndirty_background_ratio and dirty_ratio are applied.\n\nA simple workload that occupies a significant size (40+%, depending on\nmemory layout, storage speeds etc.) of memory with anon/tmpfs pages and\nuses the remainder for a streaming writer demonstrates this problem.  In\nthat case, the actual cache pages are a small fraction of what is\nconsidered dirtyable overall, which results in an relatively large\nportion of the cache pages to be dirtied.  As kswapd starts rotating\nthese, random tasks enter direct reclaim and stall on IO.\n\nOnly consider free pages and file pages dirtyable.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReported-by: Tejun Heo \u003ctj@kernel.org\u003e\nTested-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: \u003cstable@vger.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": "7c81c60f3789a082e141d7a013392af5f78db16a",
      "tree": "f3da560b70545e6780ee29319c003418d986bb05",
      "parents": [
        "b523bb75098b1ed4dd98cb651b7b71e5b8c4f533"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Wed Jan 29 20:40:08 2014 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Wed Jan 29 20:40:08 2014 +0100"
      },
      "message": "Update Jean Delvare\u0027s e-mail address\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "83c0e1b442b488571f4fef4a91c2fe52eed6c705",
      "tree": "b29a85223f2e5e166f075266edb1bf2e0ef5cf57",
      "parents": [
        "13116dfd13c8c9d60ea04ece13419af2de8e2e37"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Jan 28 18:53:22 2014 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jan 29 13:57:10 2014 +0100"
      },
      "message": "fsnotify: Do not return merged event from fsnotify_add_notify_event()\n\nThe event returned from fsnotify_add_notify_event() cannot ever be used\nsafely as the event may be freed by the time the function returns (after\ndropping notification_mutex). So change the prototype to just return\nwhether the event was added or merged into some existing event.\n\nReported-and-tested-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nReported-and-tested-by: Dave Jones \u003cdavej@fedoraproject.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "e9a371100dfdfa4c9f994059d19d98c9b4fd80af",
      "tree": "11e9d240d87834f9da927aaa4027e7dfcbd01eb8",
      "parents": [
        "d891ea23d5203e5c47439b2a174f86a00b356a6c",
        "bc75059422338197ce487d338ac9c898761e1e61"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Jan 29 16:53:55 2014 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Jan 29 16:53:55 2014 +1100"
      },
      "message": "Merge remote-tracking branch \u0027agust/next\u0027 into next\n\n\u003c\u003c\nSwitch mpc512x to the common clock framework and adapt mpc512x\ndrivers to use the new clock driver. Old PPC_CLOCK code is\nremoved entirely since there are no users any more.\n\u003e\u003e\n"
    },
    {
      "commit": "0e47c969c65e213421450c31043353ebe3c67e0c",
      "tree": "5057541fd3dc3521cb0946880d6925f1185dc7b7",
      "parents": [
        "268943fb7529a15254a5247372119ba4bd735e94",
        "0ff76a920e3558307567b45aa0a91fb914924bfc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 28 18:56:37 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 28 18:56:37 2014 -0800"
      },
      "message": "Merge tag \u0027for-linus-20140127\u0027 of git://git.infradead.org/linux-mtd\n\nPull MTD updates from Brian Norris:\n - Add me (Brian Norris) as an additional MTD maintainer (it\u0027d be nice to get\n   David\u0027s \"ack\" for this; I\u0027m sure he approves, but he\u0027s been pretty silent\n   lately)\n - Add Ezequiel Garcie as maintainer for the pxa3xx NAND driver\n - Last (?) round of pxa3xx improvements for supporting Armada 370/XP\n - Typical churn in driver boilerplate (OOM messages, printk()\u0027s, devm_*, etc.)\n - Quad read mode support for SPI NOR driver (m25p80)\n - Update Davinci NAND driver to prepare for use on new platforms\n - Begin to kill off NAND_MAX_{PAGE,OOB}SIZE macros; more work is pending\n - Miscellaneous NAND device support (new IDs)\n - Add READ RETRY support for Micron MLC NAND\n - Support new GPMI NAND ECC layout device-tree binding\n - Avoid mapping stack/vmalloc() memory for GPMI NAND DMA\n\n* tag \u0027for-linus-20140127\u0027 of git://git.infradead.org/linux-mtd: (151 commits)\n  mtd: gpmi: add sanity check when mapping DMA for read_buf/write_buf\n  mtd: gpmi: allocate a proper buffer for non ECC read/write\n  mtd: m25p80: Set rx_nbits for Quad SPI transfers\n  mtd: m25p80: Enable Quad SPI read transfers for s25fl512s\n  mtd: s3c2410: Merge plat/regs-nand.h into s3c2410.c\n  mtd: mtdram: add missing \u0027const\u0027\n  mtd: m25p80: assign default read command\n  mtd: nuc900_nand: remove redundant return value check of platform_get_resource()\n  mtd: plat_nand: remove redundant return value check of platform_get_resource()\n  mtd: nand: add Intel manufacturer ID\n  mtd: nand: add SanDisk manufacturer ID\n  mtd: nand: add support for Samsung K9LCG08U0B\n  mtd: nand: pxa3xx: Add support for 2048 bytes page size devices\n  mtd: m25p80: Use OPCODE_QUAD_READ_4B for 4-byte addressing\n  mtd: nand: don\u0027t use {read,write}_buf for 8-bit transfers\n  mtd: nand: use __packed shorthand\n  mtd: nand: support Micron READ RETRY\n  mtd: nand: add generic READ RETRY support\n  mtd: nand: add ONFI vendor block for Micron\n  mtd: nand: localize ECC failures per page\n  ...\n"
    },
    {
      "commit": "268943fb7529a15254a5247372119ba4bd735e94",
      "tree": "790d42cfade2a35b0eec5e1b7e0ac3795d399bcc",
      "parents": [
        "2ad48ee810335bdd99de96e1a0796ba34c0e8301",
        "3cb6f44aedf519dce4a9106dec675b94d675c539"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 28 18:53:01 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 28 18:53:01 2014 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds\n\nPull LED subsystem update from Bryan Wu:\n \"Basically this cycle is mostly cleanup for LED subsystem\"\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds:\n  leds: s3c24xx: Remove hardware.h inclusion\n  leds: replace list_for_each with list_for_each_entry\n  leds: kirkwood: Cleanup in header files\n  leds: pwm: Remove a warning on non-DT platforms\n  leds: leds-pwm: fix duty time overflow.\n  leds: leds-mc13783: Remove unneeded mc13xxx_{un}lock\n  leds: leds-mc13783: Remove duplicate field in platform data\n  drivers: leds: leds-tca6507: check CONFIG_GPIOLIB whether defined for \u0027gpio_base\u0027\n  leds: lp5523: Support LED MUX configuration on running a pattern\n  leds: lp5521/5523: Fix multiple engine usage bug\n  LEDS: tca6507 - fix up some comments.\n  LEDS: tca6507: add device-tree support for GPIO configuration.\n  LEDS: tca6507 - fix bugs in parsing of device-tree configuration.\n"
    },
    {
      "commit": "d30492adea3a82e7120bcf60893aaaab711f90a6",
      "tree": "082d1dff4d71ccbd722b5edd47411acad110b636",
      "parents": [
        "f1499382f114231cbd1e3dee7e656b50ce9d8236",
        "fd3fdaf09f26cd4f53fd4d7cdfe8e3dbb55a4dda"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 28 18:44:53 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 28 18:44:53 2014 -0800"
      },
      "message": "Merge tag \u0027clk-for-linus-3.14-part2\u0027 of git://git.linaro.org/people/mike.turquette/linux\n\nPull more clock framework changes from Mike Turquette:\n \"The second half of the clock framework pull requeust for 3.14 is\n  dominated by platform support for Qualcomm\u0027s MSM SoCs, DT binding\n  updates for TI\u0027s OMAP-ish processors and additional support for\n  Samsung chips.\n\n  Additionally there are other smaller clock driver changes and several\n  last minute fixes.  This pull request also includes the HiSilicon\n  support that depends on the already-merged arm-soc pull request\"\n\n[ Fix up stupid compile error in the source tree with evil merge  - Grumpy Linus ]\n\n* tag \u0027clk-for-linus-3.14-part2\u0027 of git://git.linaro.org/people/mike.turquette/linux: (49 commits)\n  clk: sort Makefile\n  clk: sunxi: fix overflow when setting up divided factors\n  clk: Export more clk-provider functions\n  dt-bindings: qcom: Fix warning with duplicate dt define\n  clk: si5351: remove variant from platform_data\n  clk: samsung: Remove unneeded semicolon\n  clk: qcom: Fix modular build\n  ARM: OMAP3: use DT clock init if DT data is available\n  ARM: AM33xx: remove old clock data and link in new clock init code\n  ARM: AM43xx: Enable clock init\n  ARM: OMAP: DRA7: Enable clock init\n  ARM: OMAP4: remove old clock data and link in new clock init code\n  ARM: OMAP2+: io: use new clock init API\n  ARM: OMAP2+: PRM: add support for initializing PRCM clock modules from DT\n  ARM: OMAP3: hwmod: initialize clkdm from clkdm_name\n  ARM: OMAP: hwmod: fix an incorrect clk type cast with _get_clkdm\n  ARM: OMAP2+: clock: use driver API instead of direct memory read/write\n  ARM: OMAP2+: clock: add support for indexed memmaps\n  ARM: dts: am43xx clock data\n  ARM: dts: AM35xx: use DT clock data\n  ...\n"
    },
    {
      "commit": "a5bd4f8ab0443ea62be34b112eb78cafb6b3042d",
      "tree": "df3357914d967c2cf4619dbd14f4609daf406a15",
      "parents": [
        "dee13f12f6ab0c0927adf9168dfc84da93fc9f13",
        "bed86f15bdc23436fb30d09e2faa3dfb7d3834e1"
      ],
      "author": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Wed Jan 29 09:38:32 2014 +1000"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Wed Jan 29 09:38:32 2014 +1000"
      },
      "message": "Merge branch \u0027drm-armada-fixes\u0027 of git://ftp.arm.linux.org.uk/~rmk/linux-cubox into drm-next\n\nJust one-liner which corrects a select statement for DRM_KMS_FB_HELPER\nwhich looks like it was missed in the initial merge.  Based on 3.13.\n\n* \u0027drm-armada-fixes\u0027 of git://ftp.arm.linux.org.uk/~rmk/linux-cubox: (55 commits)\n  DRM: armada: fix missing DRM_KMS_FB_HELPER select\n"
    },
    {
      "commit": "4a444b1f06d259ce938a47048840260f71a91c84",
      "tree": "bc8d5f2d2a3fbbbb3efc50711e3b5cfc14966a7e",
      "parents": [
        "67de11769bd5ec339a62169f500b04f304826c00"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Fri Aug 30 10:05:22 2013 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Tue Jan 28 13:20:09 2014 -0800"
      },
      "message": "rwsem: add rwsem_is_contended\n\nBtrfs needs a simple way to know if it needs to let go of it\u0027s read lock on a\nrwsem.  Introduce rwsem_is_contended to check to see if there are any waiters on\nthis rwsem currently.  This is just a hueristic, it is meant to be light and not\n100% accurate and called by somebody already holding on to the rwsem in either\nread or write.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\nSigned-off-by: Chris Mason \u003cclm@fb.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "d891ea23d5203e5c47439b2a174f86a00b356a6c",
      "tree": "3876cefcced9df5519f437cd8eb275cb979b93f6",
      "parents": [
        "08d21b5f93eb92a781daea71b6fcb3a340909141",
        "125d725c923527a85876c031028c7f55c28b74b3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 28 11:02:23 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 28 11:02:23 2014 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\nPull ceph updates from Sage Weil:\n \"This is a big batch.  From Ilya we have:\n\n   - rbd support for more than ~250 mapped devices (now uses same scheme\n     that SCSI does for device major/minor numbering)\n   - crush updates for new mapping behaviors (will be needed for coming\n     erasure coding support, among other things)\n   - preliminary support for tiered storage pools\n\n  There is also a big series fixing a pile cephfs bugs with clustered\n  MDSs from Yan Zheng, ACL support for cephfs from Guangliang Zhao, ceph\n  fscache improvements from Li Wang, improved behavior when we get\n  ENOSPC from Josh Durgin, some readv/writev improvements from\n  Majianpeng, and the usual mix of small cleanups\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (76 commits)\n  ceph: cast PAGE_SIZE to size_t in ceph_sync_write()\n  ceph: fix dout() compile warnings in ceph_filemap_fault()\n  libceph: support CEPH_FEATURE_OSD_CACHEPOOL feature\n  libceph: follow redirect replies from osds\n  libceph: rename ceph_osd_request::r_{oloc,oid} to r_base_{oloc,oid}\n  libceph: follow {read,write}_tier fields on osd request submission\n  libceph: add ceph_pg_pool_by_id()\n  libceph: CEPH_OSD_FLAG_* enum update\n  libceph: replace ceph_calc_ceph_pg() with ceph_oloc_oid_to_pg()\n  libceph: introduce and start using oid abstraction\n  libceph: rename MAX_OBJ_NAME_SIZE to CEPH_MAX_OID_NAME_LEN\n  libceph: move ceph_file_layout helpers to ceph_fs.h\n  libceph: start using oloc abstraction\n  libceph: dout() is missing a newline\n  libceph: add ceph_kv{malloc,free}() and switch to them\n  libceph: support CEPH_FEATURE_EXPORT_PEER\n  ceph: add imported caps when handling cap export message\n  ceph: add open export target session helper\n  ceph: remove exported caps when handling cap import message\n  ceph: handle session flush message\n  ...\n"
    },
    {
      "commit": "2b2b15c32ae951c3609c01e74d22d6de64b2595c",
      "tree": "f23a1e0f6929312cc9b7f742dffc2a4999283c06",
      "parents": [
        "bf3d846b783327359ddc4bd4f52627b36abb4d1d",
        "ed7e5423014ad89720fcf315c0b73f2c5d0c7bd2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 28 08:46:44 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 28 08:46:44 2014 -0800"
      },
      "message": "Merge tag \u0027nfs-for-3.14-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client updates from Trond Myklebust:\n \"Highlights include:\n\n   - stable fix for an infinite loop in RPC state machine\n   - stable fix for a use after free situation in the NFSv4 trunking discovery\n   - stable fix for error handling in the NFSv4 trunking discovery\n   - stable fix for the page write update code\n   - stable fix for the NFSv4.1 mount time security negotiation\n   - stable fix for the NFSv4 open code.\n   - O_DIRECT locking fixes\n   - fix an Oops in the pnfs file commit code\n   - RPC layer needs finer grained handling of connection errors\n   - more RPC GSS upcall fixes\"\n\n* tag \u0027nfs-for-3.14-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (30 commits)\n  pnfs: Proper delay for NFS4ERR_RECALLCONFLICT in layout_get_done\n  pnfs: fix BUG in filelayout_recover_commit_reqs\n  nfs4: fix discover_server_trunking use after free\n  NFSv4.1: Handle errors correctly in nfs41_walk_client_list\n  nfs: always make sure page is up-to-date before extending a write to cover the entire page\n  nfs: page cache invalidation for dio\n  nfs: take i_mutex during direct I/O reads\n  nfs: merge nfs_direct_write into nfs_file_direct_write\n  nfs: merge nfs_direct_read into nfs_file_direct_read\n  nfs: increment i_dio_count for reads, too\n  nfs: defer inode_dio_done call until size update is done\n  nfs: fix size updates for aio writes\n  nfs4.1: properly handle ENOTSUP in SECINFO_NO_NAME\n  NFSv4.1: Fix a race in nfs4_write_inode\n  NFSv4.1: Don\u0027t trust attributes if a pNFS LAYOUTCOMMIT is outstanding\n  point to the right include file in a comment (left over from a9004abc3)\n  NFS: dprintk() should not print negative fileids and inode numbers\n  nfs: fix dead code of ipv6_addr_scope\n  sunrpc: Fix infinite loop in RPC state machine\n  SUNRPC: Add tracepoint for socket errors\n  ...\n"
    },
    {
      "commit": "bf3d846b783327359ddc4bd4f52627b36abb4d1d",
      "tree": "c6b8fddbf04a2962dfcf9f487af25033f11b10b9",
      "parents": [
        "54c0a4b46150db1571d955d598cd342c9f1d9657",
        "f6500801522c61782d4990fa1ad96154cb397cd4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 28 08:38:04 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 28 08:38:04 2014 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs updates from Al Viro:\n \"Assorted stuff; the biggest pile here is Christoph\u0027s ACL series.  Plus\n  assorted cleanups and fixes all over the place...\n\n  There will be another pile later this week\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (43 commits)\n  __dentry_path() fixes\n  vfs: Remove second variable named error in __dentry_path\n  vfs: Is mounted should be testing mnt_ns for NULL or error.\n  Fix race when checking i_size on direct i/o read\n  hfsplus: remove can_set_xattr\n  nfsd: use get_acl and -\u003eset_acl\n  fs: remove generic_acl\n  nfs: use generic posix ACL infrastructure for v3 Posix ACLs\n  gfs2: use generic posix ACL infrastructure\n  jfs: use generic posix ACL infrastructure\n  xfs: use generic posix ACL infrastructure\n  reiserfs: use generic posix ACL infrastructure\n  ocfs2: use generic posix ACL infrastructure\n  jffs2: use generic posix ACL infrastructure\n  hfsplus: use generic posix ACL infrastructure\n  f2fs: use generic posix ACL infrastructure\n  ext2/3/4: use generic posix ACL infrastructure\n  btrfs: use generic posix ACL infrastructure\n  fs: make posix_acl_create more useful\n  fs: make posix_acl_chmod more useful\n  ...\n"
    },
    {
      "commit": "0d0b7d427987f6e98b6f32e84ee071f36f85c3d4",
      "tree": "49e20246644048c004f1b1d3c95440538465a12b",
      "parents": [
        "17a05cca99d952f5b4766fa48a2703548966636a"
      ],
      "author": {
        "name": "Jose Alonso",
        "email": "joalonsof@gmail.com",
        "time": "Tue Jan 28 08:09:46 2014 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jan 28 08:09:46 2014 -0700"
      },
      "message": "blk-mq: for_each_* macro correctness\n\nI observed that there are for_each macros that do an extra memory access\nbeyond the defined area.\nNormally this does not cause problems.\nBut, this can cause exceptions. For example: if the area is allocated at\nthe end of a page and the next page is not accessible.\n\nFor correctness, I suggest changing the arguments of the \u0027for loop\u0027 like\nothers \u0027for_each\u0027 do in the kernel.\n\nSigned-off-by: Jose Alonso \u003cjoalonsof@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "54c0a4b46150db1571d955d598cd342c9f1d9657",
      "tree": "fb5968daa68092779e7db3eb1ccd96829783dfc3",
      "parents": [
        "1b17366d695c8ab03f98d0155357e97a427e1dce",
        "c2218e26c0d03c368fff825a6f15b7bb3418dbde"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 27 21:17:55 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 27 21:17:55 2014 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (incoming from Andrew)\n\nMerge misc updates from Andrew Morton:\n\n - a few hotfixes\n\n - dynamic-debug updates\n\n - ipc updates\n\n - various other sweepings off the factory floor\n\n* akpm: (31 commits)\n  firmware/google: drop \u0027select EFI\u0027 to avoid recursive dependency\n  compat: fix sys_fanotify_mark\n  checkpatch.pl: check for function declarations without arguments\n  mm/migrate.c: fix setting of cpupid on page migration twice against normal page\n  softirq: use const char * const for softirq_to_name, whitespace neatening\n  softirq: convert printks to pr_\u003clevel\u003e\n  softirq: use ffs() in __do_softirq()\n  kernel/kexec.c: use vscnprintf() instead of vsnprintf() in vmcoreinfo_append_str()\n  splice: fix unexpected size truncation\n  ipc: fix compat msgrcv with negative msgtyp\n  ipc,msg: document barriers\n  ipc: delete seq_max field in struct ipc_ids\n  ipc: simplify sysvipc_proc_open() return\n  ipc: remove useless return statement\n  ipc: remove braces for single statements\n  ipc: standardize code comments\n  ipc: whitespace cleanup\n  ipc: change kern_ipc_perm.deleted type to bool\n  ipc: introduce ipc_valid_object() helper to sort out IPC_RMID races\n  ipc/sem.c: avoid overflow of semop undo (semadj) value\n  ...\n"
    },
    {
      "commit": "1b17366d695c8ab03f98d0155357e97a427e1dce",
      "tree": "d223c79cc33ca1d890d264a202a1dd9c29655039",
      "parents": [
        "d12de1ef5eba3adb88f8e9dd81b6a60349466378",
        "7179ba52889bef7e5e23f72908270e1ab2b7fc6f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 27 21:11:26 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 27 21:11:26 2014 -0800"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\nPull powerpc updates from Ben Herrenschmidt:\n \"So here\u0027s my next branch for powerpc.  A bit late as I was on vacation\n  last week.  It\u0027s mostly the same stuff that was in next already, I\n  just added two patches today which are the wiring up of lockref for\n  powerpc, which for some reason fell through the cracks last time and\n  is trivial.\n\n  The highlights are, in addition to a bunch of bug fixes:\n\n   - Reworked Machine Check handling on kernels running without a\n     hypervisor (or acting as a hypervisor).  Provides hooks to handle\n     some errors in real mode such as TLB errors, handle SLB errors,\n     etc...\n\n   - Support for retrieving memory error information from the service\n     processor on IBM servers running without a hypervisor and routing\n     them to the memory poison infrastructure.\n\n   - _PAGE_NUMA support on server processors\n\n   - 32-bit BookE relocatable kernel support\n\n   - FSL e6500 hardware tablewalk support\n\n   - A bunch of new/revived board support\n\n   - FSL e6500 deeper idle states and altivec powerdown support\n\n  You\u0027ll notice a generic mm change here, it has been acked by the\n  relevant authorities and is a pre-req for our _PAGE_NUMA support\"\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (121 commits)\n  powerpc: Implement arch_spin_is_locked() using arch_spin_value_unlocked()\n  powerpc: Add support for the optimised lockref implementation\n  powerpc/powernv: Call OPAL sync before kexec\u0027ing\n  powerpc/eeh: Escalate error on non-existing PE\n  powerpc/eeh: Handle multiple EEH errors\n  powerpc: Fix transactional FP/VMX/VSX unavailable handlers\n  powerpc: Don\u0027t corrupt transactional state when using FP/VMX in kernel\n  powerpc: Reclaim two unused thread_info flag bits\n  powerpc: Fix races with irq_work\n  Move precessing of MCE queued event out from syscall exit path.\n  pseries/cpuidle: Remove redundant call to ppc64_runlatch_off() in cpu idle routines\n  powerpc: Make add_system_ram_resources() __init\n  powerpc: add SATA_MV to ppc64_defconfig\n  powerpc/powernv: Increase candidate fw image size\n  powerpc: Add debug checks to catch invalid cpu-to-node mappings\n  powerpc: Fix the setup of CPU-to-Node mappings during CPU online\n  powerpc/iommu: Don\u0027t detach device without IOMMU group\n  powerpc/eeh: Hotplug improvement\n  powerpc/eeh: Call opal_pci_reinit() on powernv for restoring config space\n  powerpc/eeh: Add restore_config operation\n  ...\n"
    },
    {
      "commit": "ce85b4f2eab663dfd4ff2cb5b603ba03f595922e",
      "tree": "46bbedbb7883c93a2b058eb1cb6603ce39789b69",
      "parents": [
        "403227641533c4227d44d14f25c8f3676f6e7436"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Jan 27 17:07:16 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 27 21:02:40 2014 -0800"
      },
      "message": "softirq: use const char * const for softirq_to_name, whitespace neatening\n\nReduce data size a little.\nReduce checkpatch noise.\n\n$ size kernel/softirq.o*\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n  11554\t   6013\t   4008\t  21575\t   5447\tkernel/softirq.o.new\n  11474\t   6093\t   4008\t  21575\t   5447\tkernel/softirq.o.old\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "53e0ee9fc59cb17fcad57e481b5889c791afe6c3",
      "tree": "d7138cd4711ec89420ec9352d60910aade05cde2",
      "parents": [
        "e7ca2552369c1dfe0216c626baf82c3d83ec36bb"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@linux.vnet.ibm.com",
        "time": "Mon Jan 27 17:07:12 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 27 21:02:40 2014 -0800"
      },
      "message": "splice: fix unexpected size truncation\n\n@splice_desc.total_len is 32 bit(unsigned int) which is used to store the\nsize passed from userspace which is 64 bit(size_t) so that the size is\nunexpectedly truncated\n\nThat means vmsplice can not work if the size passed from userspace is \u003e\u003d\n4G, for example, we noticed in vmsplice, splice-reader does not do\nanything and splice-writer is waiting for available buffer forever if the\nsize is 4G\n\nFix it by extending @splice_desc.total_len to 64 bits as well\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "daf948c7d1a080041ae19aca07625efec670695a",
      "tree": "af17f8452bcd1e6c709f4875c4a04d95d4b6b62f",
      "parents": [
        "8dc5cd04f97b5d6cad64df1e7dc5c49110b4d5e3"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "davidlohr@hp.com",
        "time": "Mon Jan 27 17:07:09 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 27 21:02:40 2014 -0800"
      },
      "message": "ipc: delete seq_max field in struct ipc_ids\n\nThis field is only used to reset the ids seq number if it exceeds the\nsmaller of INT_MAX/SEQ_MULTIPLIER and USHRT_MAX, and can therefore be\nmoved out of the structure and into its own macro.  Since each\nipc_namespace contains a table of 3 pointers to struct ipc_ids we can\nsave space in instruction text:\n\n   text    data     bss     dec     hex filename\n  56232    2348      24   58604    e4ec ipc/built-in.o\n  56216    2348      24   58588    e4dc ipc/built-in.o-after\n\nSigned-off-by: Davidlohr Bueso \u003cdavidlohr@hp.com\u003e\nReviewed-by: Jonathan Gonzalez \u003cjgonzalez@linets.cl\u003e\nCc: Aswin Chandramouleeswaran \u003caswin@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "239521f31d7496a5322ee664ed8bbd1027b98c4b",
      "tree": "b340031d42d28ebe22edf55a6cf3a6ea0e2c0d99",
      "parents": [
        "72a8ff2f9245128c254387c58f948f1f0152ea46"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Mon Jan 27 17:07:04 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 27 21:02:39 2014 -0800"
      },
      "message": "ipc: whitespace cleanup\n\nThe ipc code does not adhere the typical linux coding style.\nThis patch fixes lots of simple whitespace errors.\n\n- mostly autogenerated by\n  scripts/checkpatch.pl -f --fix \\\n\t--types\u003dpointer_location,spacing,space_before_tab\n- one manual fixup (keep structure members tab-aligned)\n- removal of additional space_before_tab that were not found by --fix\n\nTested with some of my msg and sem test apps.\n\nAndrew: Could you include it in -mm and move it towards Linus\u0027 tree?\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSuggested-by: Li Bin \u003chuawei.libin@huawei.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: Rafael Aquini \u003caquini@redhat.com\u003e\nCc: Davidlohr Bueso \u003cdavidlohr@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72a8ff2f9245128c254387c58f948f1f0152ea46",
      "tree": "176eec6a1d264e9e679d7bd73eb3f5b77975e4a3",
      "parents": [
        "0f3d2b0135f4bdbfe47a99753923a64efd373d11"
      ],
      "author": {
        "name": "Rafael Aquini",
        "email": "aquini@redhat.com",
        "time": "Mon Jan 27 17:07:02 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 27 21:02:39 2014 -0800"
      },
      "message": "ipc: change kern_ipc_perm.deleted type to bool\n\nstruct kern_ipc_perm.deleted is meant to be used as a boolean toggle, and\nthe changes introduced by this patch are just to make the case explicit.\n\nSigned-off-by: Rafael Aquini \u003caquini@redhat.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nAcked-by: Davidlohr Bueso \u003cdavidlohr@hp.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ad6492b80f60a2139fa9bf8fd79b182fe5e3647c",
      "tree": "f52530fb2240679a0f88ba5047a3bedc6dacf796",
      "parents": [
        "ba635f8cd20ebc7bddf1eb8e1f4eae28a034e916"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Jan 27 17:06:49 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 27 21:02:38 2014 -0800"
      },
      "message": "memblock, nobootmem: add memblock_virt_alloc_low()\n\nThe new memblock_virt APIs are used to replaced old bootmem API.\n\nWe need to allocate page below 4G for swiotlb.\n\nThat should fix regression on Andrew\u0027s system that is using swiotlb.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nAcked-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nCc: Dave Hansen \u003cdave.hansen@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "00d195528547f31ac329aa36dc385b13fdc58f11",
      "tree": "9776c23fd286fae53b96d5615cef439d80e89469",
      "parents": [
        "33fc94506bae75341f083b79e6c2a0ff086a8810"
      ],
      "author": {
        "name": "Sachin Kamat",
        "email": "sachin.kamat@linaro.org",
        "time": "Thu Jan 02 01:58:45 2014 -0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@gmail.com",
        "time": "Mon Jan 27 17:28:51 2014 -0800"
      },
      "message": "leds: kirkwood: Cleanup in header files\n\nCommit c02cecb92ed4 (\"ARM: orion: move platform_data definitions\")\nmoved the files to the current location but forgot to remove the pointer\nto its previous location. Clean it up. While at it also change the header\nfile protection macros appropriately.\n\nSigned-off-by: Sachin Kamat \u003csachin.kamat@linaro.org\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@gmail.com\u003e\n"
    },
    {
      "commit": "01a7a063e8cf4bc09af2c02d28c12f3d72bf9649",
      "tree": "203bc7e800afe602eca8ff4edbbab02643f3c4fd",
      "parents": [
        "33ca15325ff371be7f20be7534f5aa5b6a00b558"
      ],
      "author": {
        "name": "Alexander Shiyan",
        "email": "shc_work@mail.ru",
        "time": "Fri Dec 06 22:22:18 2013 -0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "cooloney@gmail.com",
        "time": "Mon Jan 27 17:28:49 2014 -0800"
      },
      "message": "leds: leds-mc13783: Remove duplicate field in platform data\n\nLED platform data are overwhelmed by excessive field \"max_cur\"\nwhich just replicates few bits of \"led_control\" field.\nThis patch removes this field and adds a definition for the\ncurrent settings in the header.\n\nSigned-off-by: Alexander Shiyan \u003cshc_work@mail.ru\u003e\nSigned-off-by: Bryan Wu \u003ccooloney@gmail.com\u003e\n"
    },
    {
      "commit": "80e163a58c0c69ef1a0ba3500d9932b14d67bf64",
      "tree": "21b0f5d9b6f1b82b689357246f932002dfe56529",
      "parents": [
        "205ee1187a671c3b067d7f1e974903b44036f270"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "ilya.dryomov@inktank.com",
        "time": "Mon Jan 27 17:40:20 2014 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "ilya.dryomov@inktank.com",
        "time": "Mon Jan 27 23:57:57 2014 +0200"
      },
      "message": "libceph: support CEPH_FEATURE_OSD_CACHEPOOL feature\n\nAnnounce our (limited, see previous commit) support for CACHEPOOL\nfeature.\n\nSigned-off-by: Ilya Dryomov \u003cilya.dryomov@inktank.com\u003e\nReviewed-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "205ee1187a671c3b067d7f1e974903b44036f270",
      "tree": "2a310516bcf7fdfb769c360a9fcfce85f501f57a",
      "parents": [
        "3c972c95c68f455d80ff185aa440857be046bbe0"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "ilya.dryomov@inktank.com",
        "time": "Mon Jan 27 17:40:20 2014 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "ilya.dryomov@inktank.com",
        "time": "Mon Jan 27 23:57:53 2014 +0200"
      },
      "message": "libceph: follow redirect replies from osds\n\nFollow redirect replies from osds, for details see ceph.git commit\nfbbe3ad1220799b7bb00ea30fce581c5eadaf034.\n\nv1 (current) version of redirect reply consists of oloc and oid, which\nexpands to pool, key, nspace, hash and oid.  However, server-side code\nthat would populate anything other than pool doesn\u0027t exist yet, and\nhence this commit adds support for pool redirects only.  To make sure\nthat future server-side updates don\u0027t break us, we decode all fields\nand, if any of key, nspace, hash or oid have a non-default value, error\nout with \"corrupt osd_op_reply ...\" message.\n\nSigned-off-by: Ilya Dryomov \u003cilya.dryomov@inktank.com\u003e\nReviewed-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "3c972c95c68f455d80ff185aa440857be046bbe0",
      "tree": "9389951dec0bcc03c2da0f0f3fb966e16438b430",
      "parents": [
        "17a13e4028e6ad7ded079cf32370c47bd0e0fc07"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "ilya.dryomov@inktank.com",
        "time": "Mon Jan 27 17:40:20 2014 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "ilya.dryomov@inktank.com",
        "time": "Mon Jan 27 23:57:49 2014 +0200"
      },
      "message": "libceph: rename ceph_osd_request::r_{oloc,oid} to r_base_{oloc,oid}\n\nRename ceph_osd_request::r_{oloc,oid} to r_base_{oloc,oid} before\nintroducing r_target_{oloc,oid} needed for redirects.\n\nSigned-off-by: Ilya Dryomov \u003cilya.dryomov@inktank.com\u003e\nReviewed-by: Sage Weil \u003csage@inktank.com\u003e\n"
    }
  ],
  "next": "17a13e4028e6ad7ded079cf32370c47bd0e0fc07"
}
