)]}'
{
  "log": [
    {
      "commit": "98611e4e6a2b4a03fd2d4750cce8e4455a995c8d",
      "tree": "5979f4761ba67616eaeb3c5fd6fd19dbd265f9f2",
      "parents": [
        "63e46b95e9eae1161832bf45cb40bbad37bfb182"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Jan 23 15:55:52 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 23 16:37:02 2014 -0800"
      },
      "message": "exec: kill task_struct-\u003edid_exec\n\nWe can kill either task-\u003edid_exec or PF_FORKNOEXEC, they are mutually\nexclusive.  The patch kills -\u003edid_exec because it has a single user.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Kees Cook \u003ckeescook@chromium.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "68ce670b6e8edc30551862e7f6a306e45389e189",
      "tree": "6d11b7ba37a902af3640da2eeb7e1ab701e607ec",
      "parents": [
        "5d59e18270d4769c9160c282b25c00b6fc004ffb"
      ],
      "author": {
        "name": "Daeseok Youn",
        "email": "daeseok.youn@gmail.com",
        "time": "Thu Jan 23 15:55:48 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 23 16:37:02 2014 -0800"
      },
      "message": "kernel/fork.c: remove redundant NULL check in dup_mm()\n\ncurrent-\u003emm doesn\u0027t need a NULL check in dup_mm().  Becasue dup_mm() is\nused only in copy_mm() and current-\u003emm is checked whether it is NULL or\nnot in copy_mm() before calling dup_mm().\n\nSigned-off-by: Daeseok Youn \u003cdaeseok.youn@gmail.com\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5d59e18270d4769c9160c282b25c00b6fc004ffb",
      "tree": "2f945528b513b51d0735cf38f71df9cdefb125cb",
      "parents": [
        "ff252c1fc537b0c9e40f62da0a9d11bf0737b7db"
      ],
      "author": {
        "name": "Daeseok Youn",
        "email": "daeseok.youn@gmail.com",
        "time": "Thu Jan 23 15:55:47 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 23 16:37:02 2014 -0800"
      },
      "message": "kernel/fork.c: fix coding style issues\n\nFix errors reported by checkpatch.pl.  One error is parentheses, the other\nis a whitespace issue.\n\nSigned-off-by: Daeseok Youn \u003cdaeseok.youn@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff252c1fc537b0c9e40f62da0a9d11bf0737b7db",
      "tree": "04748be19b9fda59912d3511f8ff8a711dd8209f",
      "parents": [
        "abaf3787ac26ba33e2f75e76b1174c32254c25b0"
      ],
      "author": {
        "name": "DaeSeok Youn",
        "email": "daeseok.youn@gmail.com",
        "time": "Thu Jan 23 15:55:46 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 23 16:37:02 2014 -0800"
      },
      "message": "kernel/fork.c: make dup_mm() static\n\ndup_mm() is used only in kernel/fork.c\n\nSigned-off-by: Daeseok Youn \u003cdaeseok.youn@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0c740d0afc3bff0a097ad03a1c8df92757516f5c",
      "tree": "0408d1f977bfe4f93418675b201feaf53f69d9e3",
      "parents": [
        "9853a407b97d8d066b5a865173a4859a3e69fd8a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jan 21 15:49:56 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 21 16:19:46 2014 -0800"
      },
      "message": "introduce for_each_thread() to replace the buggy while_each_thread()\n\nwhile_each_thread() and next_thread() should die, almost every lockless\nusage is wrong.\n\n1. Unless g \u003d\u003d current, the lockless while_each_thread() is not safe.\n\n   while_each_thread(g, t) can loop forever if g exits, next_thread()\n   can\u0027t reach the unhashed thread in this case. Note that this can\n   happen even if g is the group leader, it can exec.\n\n2. Even if while_each_thread() itself was correct, people often use\n   it wrongly.\n\n   It was never safe to just take rcu_read_lock() and loop unless\n   you verify that pid_alive(g) \u003d\u003d T, even the first next_thread()\n   can point to the already freed/reused memory.\n\nThis patch adds signal_struct-\u003ethread_head and task-\u003ethread_node to\ncreate the normal rcu-safe list with the stable head.  The new\nfor_each_thread(g, t) helper is always safe under rcu_read_lock() as\nlong as this task_struct can\u0027t go away.\n\nNote: of course it is ugly to have both task_struct-\u003ethread_node and the\nold task_struct-\u003ethread_group, we will kill it later, after we change\nthe users of while_each_thread() to use for_each_thread().\n\nPerhaps we can kill it even before we convert all users, we can\nreimplement next_thread(t) using the new thread_head/thread_node.  But\nwe can\u0027t do this right now because this will lead to subtle behavioural\nchanges.  For example, do/while_each_thread() always sees at least one\ntask, while for_each_thread() can do nothing if the whole thread group\nhas died.  Or thread_group_empty(), currently its semantics is not clear\nunless thread_group_leader(p) and we need to audit the callers before we\ncan change it.\n\nSo this patch adds the new interface which has to coexist with the old\none for some time, hopefully the next changes will be more or less\nstraightforward and the old one will go away soon.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Sergey Dyasly \u003cdserrg@gmail.com\u003e\nTested-by: Sergey Dyasly \u003cdserrg@gmail.com\u003e\nReviewed-by: Sameer Nanda \u003csnanda@chromium.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: \"Ma, Xindong\" \u003cxindong.ma@intel.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: \"Tu, Xiaobing\" \u003cxiaobing.tu@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": "a0fa1dd3cdbccec9597fe53b6177a9aa6e20f2f8",
      "tree": "b249854573815eedf377e554f0ea516f86411841",
      "parents": [
        "9326657abe1a83ed4b4f396b923ca1217fd50cba",
        "eaad45132c564ce377e6dce05e78e08e456d5315"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 20 10:42:08 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 20 10:42:08 2014 -0800"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler changes from Ingo Molnar:\n\n - Add the initial implementation of SCHED_DEADLINE support: a real-time\n   scheduling policy where tasks that meet their deadlines and\n   periodically execute their instances in less than their runtime quota\n   see real-time scheduling and won\u0027t miss any of their deadlines.\n   Tasks that go over their quota get delayed (Available to privileged\n   users for now)\n\n - Clean up and fix preempt_enable_no_resched() abuse all around the\n   tree\n\n - Do sched_clock() performance optimizations on x86 and elsewhere\n\n - Fix and improve auto-NUMA balancing\n\n - Fix and clean up the idle loop\n\n - Apply various cleanups and fixes\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (60 commits)\n  sched: Fix __sched_setscheduler() nice test\n  sched: Move SCHED_RESET_ON_FORK into attr::sched_flags\n  sched: Fix up attr::sched_priority warning\n  sched: Fix up scheduler syscall LTP fails\n  sched: Preserve the nice level over sched_setscheduler() and sched_setparam() calls\n  sched/core: Fix htmldocs warnings\n  sched/deadline: No need to check p if dl_se is valid\n  sched/deadline: Remove unused variables\n  sched/deadline: Fix sparse static warnings\n  m68k: Fix build warning in mac_via.h\n  sched, thermal: Clean up preempt_enable_no_resched() abuse\n  sched, net: Fixup busy_loop_us_clock()\n  sched, net: Clean up preempt_enable_no_resched() abuse\n  sched/preempt: Fix up missed PREEMPT_NEED_RESCHED folding\n  sched/preempt, locking: Rework local_bh_{dis,en}able()\n  sched/clock, x86: Avoid a runtime condition in native_sched_clock()\n  sched/clock: Fix up clear_sched_clock_stable()\n  sched/clock, x86: Use a static_key for sched_clock_stable\n  sched/clock: Remove local_irq_disable() from the clocks\n  sched/clock, x86: Rewrite cyc2ns() to avoid the need to disable IRQs\n  ...\n"
    },
    {
      "commit": "48ba620aab90f4c7e9bb002e2f30863a4ea0f915",
      "tree": "f1171deeea38d62016fe6abf6d85f5632fe93ae9",
      "parents": [
        "8f211b6ccc01d058fc6c6466c7815f2315130b2e",
        "41301ae78a99ead04ea42672a1ab72c6f44cc81d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 17 17:29:36 2014 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 17 17:29:36 2014 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull namespace fixes from Eric Biederman:\n \"This is a set of 3 regression fixes.\n\n  This fixes /proc/mounts when using \"ip netns add \u003cnetns\u003e\" to display\n  the actual mount point.\n\n  This fixes a regression in clone that broke lxc-attach.\n\n  This fixes a regression in the permission checks for mounting /proc\n  that made proc unmountable if binfmt_misc was in use.  Oops.\n\n  My apologies for sending this pull request so late.  Al Viro gave\n  interesting review comments about the d_path fix that I wanted to\n  address in detail before I sent this pull request.  Unfortunately a\n  bad round of colds kept from addressing that in detail until today.\n  The executive summary of the review was:\n\n  Al: Is patching d_path really sufficient?\n      The prepend_path, d_path, d_absolute_path, and __d_path family of\n      functions is a really mess.\n\n  Me: Yes, patching d_path is really sufficient.  Yes, the code is mess.\n      No it is not appropriate to rewrite all of d_path for a regression\n      that has existed for entirely too long already, when a two line\n      change will do\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:\n  vfs: Fix a regression in mounting proc\n  fork:  Allow CLONE_PARENT after setns(CLONE_NEWPID)\n  vfs: In d_path don\u0027t call d_dname on a mount point\n"
    },
    {
      "commit": "2d3d891d3344159d5b452a645e355bbe29591e8b",
      "tree": "ab7c4ef00b48d68efa2d57cabf8c3c86160f2406",
      "parents": [
        "fb00aca474405f4fa8a8519c3179fed722eabd83"
      ],
      "author": {
        "name": "Dario Faggioli",
        "email": "raistlin@linux.it",
        "time": "Thu Nov 07 14:43:44 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Jan 13 13:42:56 2014 +0100"
      },
      "message": "sched/deadline: Add SCHED_DEADLINE inheritance logic\n\nSome method to deal with rt-mutexes and make sched_dl interact with\nthe current PI-coded is needed, raising all but trivial issues, that\nneeds (according to us) to be solved with some restructuring of\nthe pi-code (i.e., going toward a proxy execution-ish implementation).\n\nThis is under development, in the meanwhile, as a temporary solution,\nwhat this commits does is:\n\n - ensure a pi-lock owner with waiters is never throttled down. Instead,\n   when it runs out of runtime, it immediately gets replenished and it\u0027s\n   deadline is postponed;\n\n - the scheduling parameters (relative deadline and default runtime)\n   used for that replenishments --during the whole period it holds the\n   pi-lock-- are the ones of the waiting task with earliest deadline.\n\nActing this way, we provide some kind of boosting to the lock-owner,\nstill by using the existing (actually, slightly modified by the previous\ncommit) pi-architecture.\n\nWe would stress the fact that this is only a surely needed, all but\nclean solution to the problem. In the end it\u0027s only a way to re-start\ndiscussion within the community. So, as always, comments, ideas, rants,\netc.. are welcome! :-)\n\nSigned-off-by: Dario Faggioli \u003craistlin@linux.it\u003e\nSigned-off-by: Juri Lelli \u003cjuri.lelli@gmail.com\u003e\n[ Added !RT_MUTEXES build fix. ]\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/1383831828-15501-11-git-send-email-juri.lelli@gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "fb00aca474405f4fa8a8519c3179fed722eabd83",
      "tree": "8a779629a771dd3340d5a3ba0ba16b732b8de1c8",
      "parents": [
        "af6ace764d03900524e9b1ac621a1c520ee49fc6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Nov 07 14:43:43 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Jan 13 13:41:50 2014 +0100"
      },
      "message": "rtmutex: Turn the plist into an rb-tree\n\nTurn the pi-chains from plist to rb-tree, in the rt_mutex code,\nand provide a proper comparison function for -deadline and\n-priority tasks.\n\nThis is done mainly because:\n - classical prio field of the plist is just an int, which might\n   not be enough for representing a deadline;\n - manipulating such a list would become O(nr_deadline_tasks),\n   which might be to much, as the number of -deadline task increases.\n\nTherefore, an rb-tree is used, and tasks are queued in it according\nto the following logic:\n - among two -priority (i.e., SCHED_BATCH/OTHER/RR/FIFO) tasks, the\n   one with the higher (lower, actually!) prio wins;\n - among a -priority and a -deadline task, the latter always wins;\n - among two -deadline tasks, the one with the earliest deadline\n   wins.\n\nQueueing and dequeueing functions are changed accordingly, for both\nthe list of a task\u0027s pi-waiters and the list of tasks blocked on\na pi-lock.\n\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Dario Faggioli \u003craistlin@linux.it\u003e\nSigned-off-by: Juri Lelli \u003cjuri.lelli@gmail.com\u003e\nSigned-off-again-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/1383831828-15501-10-git-send-email-juri.lelli@gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "aab03e05e8f7e26f51dee792beddcb5cca9215a5",
      "tree": "bae7f6033c849e7ca77a98783c732caea412ae75",
      "parents": [
        "d50dde5a10f305253cbc3855307f608f8a3c5f73"
      ],
      "author": {
        "name": "Dario Faggioli",
        "email": "raistlin@linux.it",
        "time": "Thu Nov 28 11:14:43 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Jan 13 13:41:06 2014 +0100"
      },
      "message": "sched/deadline: Add SCHED_DEADLINE structures \u0026 implementation\n\nIntroduces the data structures, constants and symbols needed for\nSCHED_DEADLINE implementation.\n\nCore data structure of SCHED_DEADLINE are defined, along with their\ninitializers. Hooks for checking if a task belong to the new policy\nare also added where they are needed.\n\nAdds a scheduling class, in sched/dl.c and a new policy called\nSCHED_DEADLINE. It is an implementation of the Earliest Deadline\nFirst (EDF) scheduling algorithm, augmented with a mechanism (called\nConstant Bandwidth Server, CBS) that makes it possible to isolate\nthe behaviour of tasks between each other.\n\nThe typical -deadline task will be made up of a computation phase\n(instance) which is activated on a periodic or sporadic fashion. The\nexpected (maximum) duration of such computation is called the task\u0027s\nruntime; the time interval by which each instance need to be completed\nis called the task\u0027s relative deadline. The task\u0027s absolute deadline\nis dynamically calculated as the time instant a task (better, an\ninstance) activates plus the relative deadline.\n\nThe EDF algorithms selects the task with the smallest absolute\ndeadline as the one to be executed first, while the CBS ensures each\ntask to run for at most its runtime every (relative) deadline\nlength time interval, avoiding any interference between different\ntasks (bandwidth isolation).\nThanks to this feature, also tasks that do not strictly comply with\nthe computational model sketched above can effectively use the new\npolicy.\n\nTo summarize, this patch:\n - introduces the data structures, constants and symbols needed;\n - implements the core logic of the scheduling algorithm in the new\n   scheduling class file;\n - provides all the glue code between the new scheduling class and\n   the core scheduler and refines the interactions between sched/dl\n   and the other existing scheduling classes.\n\nSigned-off-by: Dario Faggioli \u003craistlin@linux.it\u003e\nSigned-off-by: Michael Trimarchi \u003cmichael@amarulasolutions.com\u003e\nSigned-off-by: Fabio Checconi \u003cfchecconi@gmail.com\u003e\nSigned-off-by: Juri Lelli \u003cjuri.lelli@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/1383831828-15501-4-git-send-email-juri.lelli@gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "56b4811039174bba9cbd68318d0d8b1585b9eded",
      "tree": "f3e8f99e85e545662d82e18bef2a7009c2948852",
      "parents": [
        "e777b63bbd589248eb151a3191ee92331a701385",
        "9722c2dac708e9468cc0dc30218ef76946ffbc9d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Jan 13 13:35:28 2014 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Jan 13 13:35:28 2014 +0100"
      },
      "message": "Merge branch \u0027sched/urgent\u0027 into sched/core\n\nPick up the latest fixes before applying new changes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "20841405940e7be0617612d521e206e4b6b325db",
      "tree": "ff60aa7674876d90e25db4046d9916f73680682b",
      "parents": [
        "de466bd628e8d663fdf3f791bc8db318ee85c714"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Wed Dec 18 17:08:44 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 18 19:04:51 2013 -0800"
      },
      "message": "mm: fix TLB flush race between migration, and change_protection_range\n\nThere are a few subtle races, between change_protection_range (used by\nmprotect and change_prot_numa) on one side, and NUMA page migration and\ncompaction on the other side.\n\nThe basic race is that there is a time window between when the PTE gets\nmade non-present (PROT_NONE or NUMA), and the TLB is flushed.\n\nDuring that time, a CPU may continue writing to the page.\n\nThis is fine most of the time, however compaction or the NUMA migration\ncode may come in, and migrate the page away.\n\nWhen that happens, the CPU may continue writing, through the cached\ntranslation, to what is no longer the current memory location of the\nprocess.\n\nThis only affects x86, which has a somewhat optimistic pte_accessible.\nAll other architectures appear to be safe, and will either always flush,\nor flush whenever there is a valid mapping, even with no permissions\n(SPARC).\n\nThe basic race looks like this:\n\nCPU A\t\t\tCPU B\t\t\tCPU C\n\n\t\t\t\t\t\tload TLB entry\nmake entry PTE/PMD_NUMA\n\t\t\tfault on entry\n\t\t\t\t\t\tread/write old page\n\t\t\tstart migrating page\n\t\t\tchange PTE/PMD to new page\n\t\t\t\t\t\tread/write old page [*]\nflush TLB\n\t\t\t\t\t\treload TLB from new entry\n\t\t\t\t\t\tread/write new page\n\t\t\t\t\t\tlose data\n\n[*] the old page may belong to a new user at this point!\n\nThe obvious fix is to flush remote TLB entries, by making sure that\npte_accessible aware of the fact that PROT_NONE and PROT_NUMA memory may\nstill be accessible if there is a TLB flush pending for the mm.\n\nThis should fix both NUMA migration and compaction.\n\n[mgorman@suse.de: fix build]\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Alex Thorlton \u003cathorlton@sgi.com\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": "bb8cbbfee68518796df4050868e5b0f5ad078f9f",
      "tree": "6f7813e8577bef51b31b32b362ef4cc7136a45c2",
      "parents": [
        "39e24d8ffbb6aa90222527dbd5991ec49fbbf323"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Nov 13 15:36:12 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Nov 27 13:50:50 2013 +0100"
      },
      "message": "tasks/fork: Remove unnecessary child-\u003eexit_state\n\nA zombie task obviously can\u0027t fork(), remove the unnecessary\ninitialization of child-\u003eexit_state. It is zero anyway after\ndup_task_struct().\n\nNote: copy_process() is huge and it has a lot of chaotic\ninitializations, probably it makes sense to move them into the\nnew helper called by dup_task_struct().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Laight \u003cDavid.Laight@ACULAB.COM\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/20131113143612.GA10540@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "1f7f4dde5c945f41a7abc2285be43d918029ecc5",
      "tree": "4a3808ab079d4e101eddfc0fcfccdf80d05cf01d",
      "parents": [
        "f48cfddc6729ef133933062320039808bafa6f45"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Nov 14 21:10:16 2013 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Nov 26 20:54:15 2013 -0800"
      },
      "message": "fork:  Allow CLONE_PARENT after setns(CLONE_NEWPID)\n\nSerge Hallyn \u003cserge.hallyn@ubuntu.com\u003e writes:\n\u003e Hi Oleg,\n\u003e\n\u003e commit 40a0d32d1eaffe6aac7324ca92604b6b3977eb0e :\n\u003e \"fork: unify and tighten up CLONE_NEWUSER/CLONE_NEWPID checks\"\n\u003e breaks lxc-attach in 3.12.  That code forks a child which does\n\u003e setns() and then does a clone(CLONE_PARENT).  That way the\n\u003e grandchild can be in the right namespaces (which the child was\n\u003e not) and be a child of the original task, which is the monitor.\n\u003e\n\u003e lxc-attach in 3.11 was working fine with no side effects that I\n\u003e could see.  Is there a real danger in allowing CLONE_PARENT\n\u003e when current-\u003ensproxy-\u003epidns_for_children is not our pidns,\n\u003e or was this done out of an \"over-abundance of caution\"?  Can we\n\u003e safely revert that new extra check?\n\nThe two fundamental things I know we can not allow are:\n- A shared signal queue aka CLONE_THREAD.  Because we compute the pid\n  and uid of the signal when we place it in the queue.\n\n- Changing the pid and by extention pid_namespace of an existing\n  process.\n\nFrom a parents perspective there is nothing special about the pid\nnamespace, to deny CLONE_PARENT, because the parent simply won\u0027t know or\ncare.\n\nFrom the childs perspective all that is special really are shared signal\nqueues.\n\nUser mode threading with CLONE_PARENT|CLONE_VM|CLONE_SIGHAND and tasks\nin different pid namespaces is almost certainly going to break because\nit is complicated.  But shared signal handlers can look at per thread\ninformation to know which pid namespace a process is in, so I don\u0027t know\nof any reason not to support CLONE_PARENT|CLONE_VM|CLONE_SIGHAND threads\nat the kernel level.  It would be absolutely stupid to implement but\nthat is a different thing.\n\nSo hmm.\n\nBecause it can do no harm, and because it is a regression let\u0027s remove\nthe CLONE_PARENT check and send it stable.\n\nCc: stable@vger.kernel.org\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nAcked-by: Serge E. Hallyn \u003cserge.hallyn@ubuntu.com\u003e\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "e009bb30c8df8a52a9622b616b67436b6a03a0cd",
      "tree": "af36a8ea7ff8acb0bcc22130b28c3dd38cfa35d0",
      "parents": [
        "c4088ebdca64c9a2e34a38177d2249805ede1f4b"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Thu Nov 14 14:31:07 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 15 09:32:15 2013 +0900"
      },
      "message": "mm: implement split page table lock for PMD level\n\nThe basic idea is the same as with PTE level: the lock is embedded into\nstruct page of table\u0027s page.\n\nWe can\u0027t use mm-\u003epmd_huge_pte to store pgtables for THP, since we don\u0027t\ntake mm-\u003epage_table_lock anymore.  Let\u0027s reuse page-\u003elru of table\u0027s page\nfor that.\n\npgtable_pmd_page_ctor() returns true, if initialization is successful\nand false otherwise.  Current implementation never fails, but assumption\nthat constructor can fail will help to port it to -rt where spinlock_t\nis rather huge and cannot be embedded into struct page -- dynamic\nallocation is required.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nTested-by: Alex Thorlton \u003cathorlton@sgi.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"Eric W . Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Paul E . McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Dave Hansen \u003cdave.hansen@intel.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Robin Holt \u003crobinmholt@gmail.com\u003e\nCc: Sedat Dilek \u003csedat.dilek@gmail.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1f56c89b040134add93f686931cc266541d239a",
      "tree": "36efea76d1803cca3e2a7716850d872db70afd8f",
      "parents": [
        "57c1ffcefb5acb3c8b5f8436c325a6bdbd8e9c78"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Thu Nov 14 14:30:48 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 15 09:32:14 2013 +0900"
      },
      "message": "mm: convert mm-\u003enr_ptes to atomic_long_t\n\nWith split page table lock for PMD level we can\u0027t hold mm-\u003epage_table_lock\nwhile updating nr_ptes.\n\nLet\u0027s convert it to atomic_long_t to avoid races.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nTested-by: Alex Thorlton \u003cathorlton@sgi.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: \"Eric W . Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Paul E . McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Dave Hansen \u003cdave.hansen@intel.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Robin Holt \u003crobinmholt@gmail.com\u003e\nCc: Sedat Dilek \u003csedat.dilek@gmail.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "39cf275a1a18ba3c7eb9b986c5c9b35b57332798",
      "tree": "40b119ca9d2fbaf8128d3fa25f4c64669002b0c0",
      "parents": [
        "ad5d69899e52792671c1aa6c7360464c7edfe09c",
        "e5137b50a0640009fd63a3e65c14bc6e1be8796a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 12 10:20:12 2013 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 12 10:20:12 2013 +0900"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler changes from Ingo Molnar:\n \"The main changes in this cycle are:\n\n   - (much) improved CONFIG_NUMA_BALANCING support from Mel Gorman, Rik\n     van Riel, Peter Zijlstra et al.  Yay!\n\n   - optimize preemption counter handling: merge the NEED_RESCHED flag\n     into the preempt_count variable, by Peter Zijlstra.\n\n   - wait.h fixes and code reorganization from Peter Zijlstra\n\n   - cfs_bandwidth fixes from Ben Segall\n\n   - SMP load-balancer cleanups from Peter Zijstra\n\n   - idle balancer improvements from Jason Low\n\n   - other fixes and cleanups\"\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (129 commits)\n  ftrace, sched: Add TRACE_FLAG_PREEMPT_RESCHED\n  stop_machine: Fix race between stop_two_cpus() and stop_cpus()\n  sched: Remove unnecessary iteration over sched domains to update nr_busy_cpus\n  sched: Fix asymmetric scheduling for POWER7\n  sched: Move completion code from core.c to completion.c\n  sched: Move wait code from core.c to wait.c\n  sched: Move wait.c into kernel/sched/\n  sched/wait: Fix __wait_event_interruptible_lock_irq_timeout()\n  sched: Avoid throttle_cfs_rq() racing with period_timer stopping\n  sched: Guarantee new group-entities always have weight\n  sched: Fix hrtimer_cancel()/rq-\u003elock deadlock\n  sched: Fix cfs_bandwidth misuse of hrtimer_expires_remaining\n  sched: Fix race on toggling cfs_bandwidth_used\n  sched: Remove extra put_online_cpus() inside sched_setaffinity()\n  sched/rt: Fix task_tick_rt() comment\n  sched/wait: Fix build breakage\n  sched/wait: Introduce prepare_to_wait_event()\n  sched/wait: Add ___wait_cond_timeout() to wait_event*_timeout() too\n  sched: Remove get_online_cpus() usage\n  sched: Fix race in migrate_swap_stop()\n  ...\n"
    },
    {
      "commit": "3ab679661721b1ec2aaad99a801870ed59ab1110",
      "tree": "f651a01eb98dd5454d433da9ae35579242a2cb36",
      "parents": [
        "aa59c53fd4599c91ccf9629af0c2777b89929076"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Oct 16 19:39:37 2013 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Oct 29 18:02:55 2013 +0100"
      },
      "message": "uprobes: Teach uprobe_copy_process() to handle CLONE_VFORK\n\nuprobe_copy_process() does nothing if the child shares -\u003emm with\nthe forking process, but there is a special case: CLONE_VFORK.\nIn this case it would be more correct to do dup_utask() but avoid\ndup_xol(). This is not that important, the child should not unwind\nits stack too much, this can corrupt the parent\u0027s stack, but at\nleast we need this to allow to ret-probe __vfork() itself.\n\nNote: in theory, it would be better to check task_pt_regs(p)-\u003esp\ninstead of CLONE_VFORK, we need to dup_utask() if and only if the\nchild can return from the function called by the parent. But this\nneeds the arch-dependant helper, and I think that nobody actually\ndoes clone(same_stack, CLONE_VM).\n\nReported-by: Martin Cermak \u003cmcermak@redhat.com\u003e\nReported-by: David Smith \u003cdsmith@redhat.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "b68e0749100e1b901bf11330f149b321c082178e",
      "tree": "e6950bc5bafbb845ce1f7650e738e6aac7e12b12",
      "parents": [
        "c2d3f25dda016d9697c5416810d4528770f0a281"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Oct 13 21:18:31 2013 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Oct 29 18:02:48 2013 +0100"
      },
      "message": "uprobes: Change the callsite of uprobe_copy_process()\n\nPreparation for the next patches.\n\nMove the callsite of uprobe_copy_process() in copy_process() down\nto the succesfull return. We do not care if copy_process() fails,\nuprobe_free_utask() won\u0027t be called in this case so the wrong\n-\u003eutask !\u003d NULL doesn\u0027t matter.\n\nOTOH, with this change we know that copy_process() can\u0027t fail when\nuprobe_copy_process() is called, the new task should either return\nto user-mode or call do_exit(). This way uprobe_copy_process() can:\n\n\t1. setup p-\u003eutask !\u003d NULL if necessary\n\n\t2. setup uprobes_state.xol_area\n\n\t3. use task_work_add(p)\n\nAlso, move the definition of uprobe_copy_process() down so that it\ncan see get_utask().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "5e1576ed0e54d419286a8096133029062b6ad456",
      "tree": "2394e5c0ed3783e36f23961c0330276cde820e03",
      "parents": [
        "0f19c17929c952c6f0966d93ab05558e7bf814cc"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Mon Oct 07 11:29:26 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Oct 09 14:47:57 2013 +0200"
      },
      "message": "sched/numa: Stay on the same node if CLONE_VM\n\nA newly spawned thread inside a process should stay on the same\nNUMA node as its parent. This prevents processes from being \"torn\"\nacross multiple NUMA nodes every time they spawn a new thread.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/1381141781-10992-49-git-send-email-mgorman@suse.de\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "b726b7dfb400c937546fa91cf8523dcb1aa2fc6e",
      "tree": "b4a6f741b630bb22568536860f3f46e94c4e8904",
      "parents": [
        "9e645ab6d089f5822479a833c6977c785bcfffe3"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Oct 07 11:28:53 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Oct 09 12:40:17 2013 +0200"
      },
      "message": "Revert \"mm: sched: numa: Delay PTE scanning until a task is scheduled on a new node\"\n\nPTE scanning and NUMA hinting fault handling is expensive so commit\n5bca2303 (\"mm: sched: numa: Delay PTE scanning until a task is scheduled\non a new node\") deferred the PTE scan until a task had been scheduled on\nanother node. The problem is that in the purely shared memory case that\nthis may never happen and no NUMA hinting fault information will be\ncaptured. We are not ruling out the possibility that something better\ncan be done here but for now, this patch needs to be reverted and depend\nentirely on the scan_delay to avoid punishing short-lived processes.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/1381141781-10992-16-git-send-email-mgorman@suse.de\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "9bf12df31f282e845b3dfaac1e5d5376a041da22",
      "tree": "10d7a21d34c7f2c47eff3e807f5efef46228d507",
      "parents": [
        "399a946edbbe90bd03aec2e93ce58c9b3f18e70b",
        "d9b2c8714aef102dea95544a8cd9372b21af463f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 10:55:58 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 10:55:58 2013 -0700"
      },
      "message": "Merge git://git.kvack.org/~bcrl/aio-next\n\nPull aio changes from Ben LaHaise:\n \"First off, sorry for this pull request being late in the merge window.\n  Al had raised a couple of concerns about 2 items in the series below.\n  I addressed the first issue (the race introduced by Gu\u0027s use of\n  mm_populate()), but he has not provided any further details on how he\n  wants to rework the anon_inode.c changes (which were sent out months\n  ago but have yet to be commented on).\n\n  The bulk of the changes have been sitting in the -next tree for a few\n  months, with all the issues raised being addressed\"\n\n* git://git.kvack.org/~bcrl/aio-next: (22 commits)\n  aio: rcu_read_lock protection for new rcu_dereference calls\n  aio: fix race in ring buffer page lookup introduced by page migration support\n  aio: fix rcu sparse warnings introduced by ioctx table lookup patch\n  aio: remove unnecessary debugging from aio_free_ring()\n  aio: table lookup: verify ctx pointer\n  staging/lustre: kiocb-\u003eki_left is removed\n  aio: fix error handling and rcu usage in \"convert the ioctx list to table lookup v3\"\n  aio: be defensive to ensure request batching is non-zero instead of BUG_ON()\n  aio: convert the ioctx list to table lookup v3\n  aio: double aio_max_nr in calculations\n  aio: Kill ki_dtor\n  aio: Kill ki_users\n  aio: Kill unneeded kiocb members\n  aio: Kill aio_rw_vect_retry()\n  aio: Don\u0027t use ctx-\u003etail unnecessarily\n  aio: io_cancel() no longer returns the io_event\n  aio: percpu ioctx refcount\n  aio: percpu reqs_available\n  aio: reqs_active -\u003e reqs_available\n  aio: fix build when migration is disabled\n  ...\n"
    },
    {
      "commit": "ef0855d334e1e4af7c3e0c42146a8479ea14a5ab",
      "tree": "5955b0424bb392e1949acc0ad5066cb461bef867",
      "parents": [
        "c07303c0af38ffb1e5fd9b5ff37d0798298a7acf"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 11 14:20:14 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:57:00 2013 -0700"
      },
      "message": "mm: mempolicy: turn vma_set_policy() into vma_dup_policy()\n\nSimple cleanup.  Every user of vma_set_policy() does the same work, this\nlooks a bit annoying imho.  And the new trivial helper which does\nmpol_dup() + vma_set_policy() to simplify the callers.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "40a0d32d1eaffe6aac7324ca92604b6b3977eb0e",
      "tree": "c736993570ca2b16f0b7963226fda1947ec2c6b8",
      "parents": [
        "5167246a8ad617df55717c2d901da5e2aedffcfa"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 11 14:19:41 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:20 2013 -0700"
      },
      "message": "fork: unify and tighten up CLONE_NEWUSER/CLONE_NEWPID checks\n\ndo_fork() denies CLONE_THREAD | CLONE_PARENT if NEWUSER | NEWPID.\n\nThen later copy_process() denies CLONE_SIGHAND if the new process will\nbe in a different pid namespace (task_active_pid_ns() doesn\u0027t match\ncurrent-\u003ensproxy-\u003epid_ns).\n\nThis looks confusing and inconsistent.  CLONE_NEWPID is very similar to\nthe case when -\u003epid_ns was already unshared, we want the same\nrestrictions so copy_process() should also nack CLONE_PARENT.\n\nAnd it would be better to deny CLONE_NEWUSER \u0026\u0026 CLONE_SIGHAND as well\njust for consistency.\n\nKill the \"CLONE_NEWUSER | CLONE_NEWPID\" check in do_fork() and change\ncopy_process() to do the same check along with -\u003epid_ns check we already\nhave.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Colin Walters \u003cwalters@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5167246a8ad617df55717c2d901da5e2aedffcfa",
      "tree": "170259b1cad5dd2f1ff6bd46db39a2ac25aa07b4",
      "parents": [
        "e79f525e99b04390ca4d2366309545a836c03bf1"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 11 14:19:40 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:19 2013 -0700"
      },
      "message": "pidns: kill the unnecessary CLONE_NEWPID in copy_process()\n\nCommit 8382fcac1b81 (\"pidns: Outlaw thread creation after\nunshare(CLONE_NEWPID)\") nacks CLONE_NEWPID if the forking process\nunshared pid_ns.  This is correct but unnecessary, copy_pid_ns() does\nthe same check.\n\nRemove the CLONE_NEWPID check to cleanup the code and prepare for the\nnext change.\n\nTest-case:\n\n\tstatic int child(void *arg)\n\t{\n\t\treturn 0;\n\t}\n\n\tstatic char stack[16 * 1024];\n\n\tint main(void)\n\t{\n\t\tpid_t pid;\n\n\t\tassert(unshare(CLONE_NEWUSER | CLONE_NEWPID) \u003d\u003d 0);\n\n\t\tpid \u003d clone(child, stack + sizeof(stack) / 2,\n\t\t\t\tCLONE_NEWPID | SIGCHLD, NULL);\n\t\tassert(pid \u003c 0 \u0026\u0026 errno \u003d\u003d EINVAL);\n\n\t\treturn 0;\n\t}\n\nclone(CLONE_NEWPID) correctly fails with or without this change.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Colin Walters \u003cwalters@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e79f525e99b04390ca4d2366309545a836c03bf1",
      "tree": "06fcca5d6cf0e093b7642f7192bfddc92baed108",
      "parents": [
        "3b8967d713d7426e9dd107d065208b84adface91"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 11 14:19:38 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:19 2013 -0700"
      },
      "message": "pidns: fix vfork() after unshare(CLONE_NEWPID)\n\nCommit 8382fcac1b81 (\"pidns: Outlaw thread creation after\nunshare(CLONE_NEWPID)\") nacks CLONE_VM if the forking process unshared\npid_ns, this obviously breaks vfork:\n\n\tint main(void)\n\t{\n\t\tassert(unshare(CLONE_NEWUSER | CLONE_NEWPID) \u003d\u003d 0);\n\t\tassert(vfork() \u003e\u003d 0);\n\t\t_exit(0);\n\t\treturn 0;\n\t}\n\nfails without this patch.\n\nChange this check to use CLONE_SIGHAND instead.  This also forbids\nCLONE_THREAD automatically, and this is what the comment implies.\n\nWe could probably even drop CLONE_SIGHAND and use CLONE_THREAD, but it\nwould be safer to not do this.  The current check denies CLONE_SIGHAND\nimplicitely and there is no reason to change this.\n\nEric said \"CLONE_SIGHAND is fine.  CLONE_THREAD would be even better.\nHaving shared signal handling between two different pid namespaces is\nthe case that we are fundamentally guarding against.\"\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReported-by: Colin Walters \u003cwalters@redhat.com\u003e\nAcked-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nReviewed-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\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": "c7c4591db64dbd1e504bc4e2806d7ef290a3c81b",
      "tree": "a2fb124f9760eec668d20541383e762822d7cc7b",
      "parents": [
        "11c7b03d42a847db90862d0f9d8be6ce9b2f0553",
        "c7b96acf1456ef127fef461fcfedb54b81fecfbb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 07 14:35:32 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 07 14:35:32 2013 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull namespace changes from Eric Biederman:\n \"This is an assorted mishmash of small cleanups, enhancements and bug\n  fixes.\n\n  The major theme is user namespace mount restrictions.  nsown_capable\n  is killed as it encourages not thinking about details that need to be\n  considered.  A very hard to hit pid namespace exiting bug was finally\n  tracked and fixed.  A couple of cleanups to the basic namespace\n  infrastructure.\n\n  Finally there is an enhancement that makes per user namespace\n  capabilities usable as capabilities, and an enhancement that allows\n  the per userns root to nice other processes in the user namespace\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:\n  userns:  Kill nsown_capable it makes the wrong thing easy\n  capabilities: allow nice if we are privileged\n  pidns: Don\u0027t have unshare(CLONE_NEWPID) imply CLONE_THREAD\n  userns: Allow PR_CAPBSET_DROP in a user namespace.\n  namespaces: Simplify copy_namespaces so it is clear what is going on.\n  pidns: Fix hang in zap_pid_ns_processes by sending a potentially extra wakeup\n  sysfs: Restrict mounting sysfs\n  userns: Better restrictions on when proc and sysfs can be mounted\n  vfs: Don\u0027t copy mount bind mounts of /proc/\u003cpid\u003e/ns/mnt between namespaces\n  kernel/nsproxy.c: Improving a snippet of code.\n  proc: Restrict mounting the proc filesystem\n  vfs: Lock in place mounts from more privileged users\n"
    },
    {
      "commit": "6e556ce209b09528dbf1931cbfd5d323e1345926",
      "tree": "5920aa522bb1be12f8c4c458c44d792f72ea3674",
      "parents": [
        "160da84dbb39443fdade7151bc63a88f8e953077"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Mar 05 13:59:48 2013 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Aug 30 23:44:00 2013 -0700"
      },
      "message": "pidns: Don\u0027t have unshare(CLONE_NEWPID) imply CLONE_THREAD\n\nI goofed when I made unshare(CLONE_NEWPID) only work in a\nsingle-threaded process.  There is no need for that requirement and in\nfact I analyzied things right for setns.  The hard requirement\nis for tasks that share a VM to all be in the pid namespace and\nwe properly prevent that in do_fork.\n\nJust to be certain I took a look through do_wait and\nforget_original_parent and there are no cases that make it any harder\nfor children to be in the multiple pid namespaces than it is for\nchildren to be in the same pid namespace.  I also performed a check to\nsee if there were in uses of task-\u003ensproxy_pid_ns I was not familiar\nwith, but it is only used when allocating a new pid for a new task,\nand in checks to prevent craziness from happening.\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "c2b1df2eb42978073ec27c99cc199d20ae48b849",
      "tree": "5b7335ad7fc7e17a26a2e724c7f1f93970bc75fc",
      "parents": [
        "d661684cf6820331feae71146c35da83d794467e"
      ],
      "author": {
        "name": "Andy Lutomirski",
        "email": "luto@amacapital.net",
        "time": "Thu Aug 22 11:39:16 2013 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Aug 27 13:52:52 2013 -0400"
      },
      "message": "Rename nsproxy.pid_ns to nsproxy.pid_ns_for_children\n\nnsproxy.pid_ns is *not* the task\u0027s pid namespace.  The name should clarify\nthat.\n\nThis makes it more obvious that setns on a pid namespace is weird --\nit won\u0027t change the pid namespace shown in procfs.\n\nSigned-off-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nReviewed-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dfa9771a7c4784bafd0673bc7abcee3813088b77",
      "tree": "130ab88dc03c5bc007949e6f98fe39edfccb81f7",
      "parents": [
        "41bb3476b361ef38576cf9d539b19bae2ac93167"
      ],
      "author": {
        "name": "Michal Simek",
        "email": "michal.simek@xilinx.com",
        "time": "Tue Aug 13 16:00:53 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 13 17:57:48 2013 -0700"
      },
      "message": "microblaze: fix clone syscall\n\nFix inadvertent breakage in the clone syscall ABI for Microblaze that\nwas introduced in commit f3268edbe6fe (\"microblaze: switch to generic\nfork/vfork/clone\").\n\nThe Microblaze syscall ABI for clone takes the parent tid address in the\n4th argument; the third argument slot is used for the stack size.  The\nincorrectly-used CLONE_BACKWARDS type assigned parent tid to the 3rd\nslot.\n\nThis commit restores the original ABI so that existing userspace libc\ncode will work correctly.\n\nAll kernel versions from v3.8-rc1 were affected.\n\nSigned-off-by: Michal Simek \u003cmichal.simek@xilinx.com\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": "db446a08c23d5475e6b08c87acca79ebb20f283c",
      "tree": "9410c14312ac57df04cdb6129c0c369de67bcfb4",
      "parents": [
        "4cd81c3dfc4a34e4a0b6fa577860077c8e5b13af"
      ],
      "author": {
        "name": "Benjamin LaHaise",
        "email": "bcrl@kvack.org",
        "time": "Tue Jul 30 12:54:40 2013 -0400"
      },
      "committer": {
        "name": "Benjamin LaHaise",
        "email": "bcrl@kvack.org",
        "time": "Tue Jul 30 12:56:36 2013 -0400"
      },
      "message": "aio: convert the ioctx list to table lookup v3\n\nOn Wed, Jun 12, 2013 at 11:14:40AM -0700, Kent Overstreet wrote:\n\u003e On Mon, Apr 15, 2013 at 02:40:55PM +0300, Octavian Purdila wrote:\n\u003e \u003e When using a large number of threads performing AIO operations the\n\u003e \u003e IOCTX list may get a significant number of entries which will cause\n\u003e \u003e significant overhead. For example, when running this fio script:\n\u003e \u003e\n\u003e \u003e rw\u003drandrw; size\u003d256k ;directory\u003d/mnt/fio; ioengine\u003dlibaio; iodepth\u003d1\n\u003e \u003e blocksize\u003d1024; numjobs\u003d512; thread; loops\u003d100\n\u003e \u003e\n\u003e \u003e on an EXT2 filesystem mounted on top of a ramdisk we can observe up to\n\u003e \u003e 30% CPU time spent by lookup_ioctx:\n\u003e \u003e\n\u003e \u003e  32.51%  [guest.kernel]  [g] lookup_ioctx\n\u003e \u003e   9.19%  [guest.kernel]  [g] __lock_acquire.isra.28\n\u003e \u003e   4.40%  [guest.kernel]  [g] lock_release\n\u003e \u003e   4.19%  [guest.kernel]  [g] sched_clock_local\n\u003e \u003e   3.86%  [guest.kernel]  [g] local_clock\n\u003e \u003e   3.68%  [guest.kernel]  [g] native_sched_clock\n\u003e \u003e   3.08%  [guest.kernel]  [g] sched_clock_cpu\n\u003e \u003e   2.64%  [guest.kernel]  [g] lock_release_holdtime.part.11\n\u003e \u003e   2.60%  [guest.kernel]  [g] memcpy\n\u003e \u003e   2.33%  [guest.kernel]  [g] lock_acquired\n\u003e \u003e   2.25%  [guest.kernel]  [g] lock_acquire\n\u003e \u003e   1.84%  [guest.kernel]  [g] do_io_submit\n\u003e \u003e\n\u003e \u003e This patchs converts the ioctx list to a radix tree. For a performance\n\u003e \u003e comparison the above FIO script was run on a 2 sockets 8 core\n\u003e \u003e machine. This are the results (average and %rsd of 10 runs) for the\n\u003e \u003e original list based implementation and for the radix tree based\n\u003e \u003e implementation:\n\u003e \u003e\n\u003e \u003e cores         1         2         4         8         16        32\n\u003e \u003e list       109376 ms  69119 ms  35682 ms  22671 ms  19724 ms  16408 ms\n\u003e \u003e %rsd         0.69%      1.15%     1.17%     1.21%     1.71%     1.43%\n\u003e \u003e radix       73651 ms  41748 ms  23028 ms  16766 ms  15232 ms   13787 ms\n\u003e \u003e %rsd         1.19%      0.98%     0.69%     1.13%    0.72%      0.75%\n\u003e \u003e % of radix\n\u003e \u003e relative    66.12%     65.59%    66.63%    72.31%   77.26%     83.66%\n\u003e \u003e to list\n\u003e \u003e\n\u003e \u003e To consider the impact of the patch on the typical case of having\n\u003e \u003e only one ctx per process the following FIO script was run:\n\u003e \u003e\n\u003e \u003e rw\u003drandrw; size\u003d100m ;directory\u003d/mnt/fio; ioengine\u003dlibaio; iodepth\u003d1\n\u003e \u003e blocksize\u003d1024; numjobs\u003d1; thread; loops\u003d100\n\u003e \u003e\n\u003e \u003e on the same system and the results are the following:\n\u003e \u003e\n\u003e \u003e list        58892 ms\n\u003e \u003e %rsd         0.91%\n\u003e \u003e radix       59404 ms\n\u003e \u003e %rsd         0.81%\n\u003e \u003e % of radix\n\u003e \u003e relative    100.87%\n\u003e \u003e to list\n\u003e\n\u003e So, I was just doing some benchmarking/profiling to get ready to send\n\u003e out the aio patches I\u0027ve got for 3.11 - and it looks like your patch is\n\u003e causing a ~1.5% throughput regression in my testing :/\n... \u003csnip\u003e\n\nI\u0027ve got an alternate approach for fixing this wart in lookup_ioctx()...\nInstead of using an rbtree, just use the reserved id in the ring buffer\nheader to index an array pointing the ioctx.  It\u0027s not finished yet, and\nit needs to be tidied up, but is most of the way there.\n\n\t\t-ben\n--\n\"Thought is the essence of where you are now.\"\n--\nkmo\u003e And, a rework of Ben\u0027s code, but this was entirely his idea\nkmo\u003e\t\t-Kent\n\nbcrl\u003e And fix the code to use the right mm_struct in kill_ioctx(), actually\nfree memory.\n\nSigned-off-by: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\n"
    },
    {
      "commit": "0db0628d90125193280eabb501c94feaf48fa9ab",
      "tree": "0e0ef0c4eac101d25a3bd125c4a9200ac4d294c0",
      "parents": [
        "49fb4c6290c70c418a5c25eee996d6b55ea132d6"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Wed Jun 19 14:53:51 2013 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Jul 14 19:36:59 2013 -0400"
      },
      "message": "kernel: delete __cpuinit usage from all core kernel files\n\nThe __cpuinit type of throwaway sections might have made sense\nsome time ago when RAM was more constrained, but now the savings\ndo not offset the cost and complications.  For example, the fix in\ncommit 5e427ec2d0 (\"x86: Fix bit corruption at CPU resume time\")\nis a good example of the nasty type of bugs that can be created\nwith improper use of the various __init prefixes.\n\nAfter a discussion on LKML[1] it was decided that cpuinit should go\nthe way of devinit and be phased out.  Once all the users are gone,\nwe can then finally remove the macros themselves from linux/init.h.\n\nThis removes all the uses of the __cpuinit macros from C files in\nthe core kernel directories (kernel, init, lib, mm, and include)\nthat don\u0027t really have a specific maintainer.\n\n[1] https://lkml.org/lkml/2013/5/20/589\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "98d1e64f95b177d0f14efbdf695a1b28e1428035",
      "tree": "b7473b55b4b3579edfcb0c98b7c4e7d65f8c169c",
      "parents": [
        "61b0d76017a50c263c303fa263b295b04e0c68f6"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Wed Jul 10 16:05:12 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 10 18:11:34 2013 -0700"
      },
      "message": "mm: remove free_area_cache\n\nSince all architectures have been converted to use vm_unmapped_area(),\nthere is no remaining use for the free_area_cache.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: \"James E.J. Bottomley\" \u003cjejb@parisc-linux.org\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Helge Deller \u003cdeller@gmx.de\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Matt Turner \u003cmattst88@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "18c830df771f2ba8b4699fea9af1492275ae627b",
      "tree": "01b1dc470a1a30102a3f94e539bdbf74faa548be",
      "parents": [
        "8190773985141f063e1d6dc10200527c655abfb5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jul 03 15:08:32 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 03 16:08:03 2013 -0700"
      },
      "message": "kernel/fork.c:copy_process(): consolidate the lockless CLONE_THREAD checks\n\ncopy_process() does a lot of \"chaotic\" initializations and checks\nCLONE_THREAD twice before it takes tasklist.  In particular it sets\n\"p-\u003egroup_leader \u003d p\" and then changes it again under tasklist if\n!thread_group_leader(p).\n\nThis looks a bit confusing, lets create a single \"if (CLONE_THREAD)\" block\nwhich initializes -\u003eexit_signal, -\u003egroup_leader, and -\u003etgid.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Sergey Dyasly \u003cdserrg@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8190773985141f063e1d6dc10200527c655abfb5",
      "tree": "5c148834f047748dfa2ce3500236b89656976567",
      "parents": [
        "80628ca06c5d42929de6bc22c0a41589a834d151"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jul 03 15:08:31 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 03 16:08:03 2013 -0700"
      },
      "message": "kernel/fork.c:copy_process(): don\u0027t add the uninitialized child to thread/task/pid lists\n\ncopy_process() adds the new child to thread_group/init_task.tasks list and\nthen does attach_pid(child, PIDTYPE_PID).  This means that the lockless\nnext_thread() or next_task() can see this thread with the wrong pid.  Say,\n\"ls /proc/pid/task\" can list the same inode twice.\n\nWe could move attach_pid(child, PIDTYPE_PID) up, but in this case\nfind_task_by_vpid() can find the new thread before it was fully\ninitialized.\n\nAnd this is already true for PIDTYPE_PGID/PIDTYPE_SID, With this patch\ncopy_process() initializes child-\u003epids[*].pid first, then calls\nattach_pid() to insert the task into the pid-\u003etasks list.\n\nattach_pid() no longer need the \"struct pid*\" argument, it is always\ncalled after pid_link-\u003epid was already set.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Sergey Dyasly \u003cdserrg@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "80628ca06c5d42929de6bc22c0a41589a834d151",
      "tree": "a76f3264bac4b21554221ac54bddc69c759aed9b",
      "parents": [
        "b57922b6c76c3ee401bb32fd3f298409dd6e6a53"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jul 03 15:08:30 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 03 16:08:03 2013 -0700"
      },
      "message": "kernel/fork.c:copy_process(): unify CLONE_THREAD-or-thread_group_leader code\n\nCleanup and preparation for the next changes.\n\nMove the \"if (clone_flags \u0026 CLONE_THREAD)\" code down under \"if\n(likely(p-\u003epid))\" and turn it into into the \"else\" branch.  This makes the\nprocess/thread initialization more symmetrical and removes one check.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Sergey Dyasly \u003cdserrg@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b57922b6c76c3ee401bb32fd3f298409dd6e6a53",
      "tree": "f9c8509215a9e5333accfa80f4e97bb0cd068209",
      "parents": [
        "30bc30df102b2d0c003d93477e04b97e6c528573"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Jul 03 15:08:29 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 03 16:08:03 2013 -0700"
      },
      "message": "fork: reorder permissions when violating number of processes limits\n\nWhen a task is attempting to violate the RLIMIT_NPROC limit we have a\ncheck to see if the task is sufficiently priviledged.  The check first\nlooks at CAP_SYS_ADMIN, then CAP_SYS_RESOURCE, then if the task is uid\u003d0.\n\nA result is that tasks which are allowed by the uid\u003d0 check are first\nchecked against the security subsystem.  This results in the security\nsubsystem auditting a denial for sys_admin and sys_resource and then the\ntask passing the uid\u003d0 check.\n\nThis patch rearranges the code to first check uid\u003d0, since if we pass that\nwe shouldn\u0027t hit the security system at all.  We then check sys_resource,\nsince it is the smallest capability which will solve the problem.  Lastly\nwe check the fallback everything cap_sysadmin.  We don\u0027t want to give this\ncapability many places since it is so powerful.\n\nThis will eliminate many of the false positive/needless denial messages we\nget when a root task tries to violate the nproc limit.  (note that\nkthreads count against root, so on a sufficiently large machine we can\nactually get past the default limits before any userspace tasks are\nlaunched.)\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ebb37277796269da36a8bc5d72ed1e8e1fb7d34b",
      "tree": "0ded627a62a5cec70b18d12825dd858855c135d3",
      "parents": [
        "4de13d7aa8f4d02f4dc99d4609575659f92b3c5a",
        "f50efd2fdbd9b35b11f5778ed85beb764184bda9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 08 11:51:05 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 08 11:51:05 2013 -0700"
      },
      "message": "Merge branch \u0027for-3.10/drivers\u0027 of git://git.kernel.dk/linux-block\n\nPull block driver updates from Jens Axboe:\n \"It might look big in volume, but when categorized, not a lot of\n  drivers are touched.  The pull request contains:\n\n   - mtip32xx fixes from Micron.\n\n   - A slew of drbd updates, this time in a nicer series.\n\n   - bcache, a flash/ssd caching framework from Kent.\n\n   - Fixes for cciss\"\n\n* \u0027for-3.10/drivers\u0027 of git://git.kernel.dk/linux-block: (66 commits)\n  bcache: Use bd_link_disk_holder()\n  bcache: Allocator cleanup/fixes\n  cciss: bug fix to prevent cciss from loading in kdump crash kernel\n  cciss: add cciss_allow_hpsa module parameter\n  drivers/block/mg_disk.c: add CONFIG_PM_SLEEP to suspend/resume functions\n  mtip32xx: Workaround for unaligned writes\n  bcache: Make sure blocksize isn\u0027t smaller than device blocksize\n  bcache: Fix merge_bvec_fn usage for when it modifies the bvm\n  bcache: Correctly check against BIO_MAX_PAGES\n  bcache: Hack around stuff that clones up to bi_max_vecs\n  bcache: Set ra_pages based on backing device\u0027s ra_pages\n  bcache: Take data offset from the bdev superblock.\n  mtip32xx: mtip32xx: Disable TRIM support\n  mtip32xx: fix a smatch warning\n  bcache: Disable broken btree fuzz tester\n  bcache: Fix a format string overflow\n  bcache: Fix a minor memory leak on device teardown\n  bcache: Documentation updates\n  bcache: Use WARN_ONCE() instead of __WARN()\n  bcache: Add missing #include \u003clinux/prefetch.h\u003e\n  ...\n"
    },
    {
      "commit": "a27bb332c04cec8c4afd7912df0dc7890db27560",
      "tree": "86e6c41c2012f24c40ab455e2449d76346ae8956",
      "parents": [
        "41ef4eb8eef8d06bc1399e7b00c940d771554711"
      ],
      "author": {
        "name": "Kent Overstreet",
        "email": "koverstreet@google.com",
        "time": "Tue May 07 16:19:08 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 07 20:16:25 2013 -0700"
      },
      "message": "aio: don\u0027t include aio.h in sched.h\n\nFaster kernel compiles by way of fewer unnecessary includes.\n\n[akpm@linux-foundation.org: fix fallout]\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nCc: Zach Brown \u003czab@redhat.com\u003e\nCc: Felipe Balbi \u003cbalbi@ti.com\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Asai Thambi S P \u003casamymuthupa@micron.com\u003e\nCc: Selvan Mani \u003csmani@micron.com\u003e\nCc: Sam Bradshaw \u003csbradshaw@micron.com\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nReviewed-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08d76760832993050ad8c25e63b56773ef2ca303",
      "tree": "abdcf148dfe43cd49f30f204f1dac6978107a508",
      "parents": [
        "5f56886521d6ddd3648777fae44d82382dd8c87f",
        "99e621f796d7f0341a51e8cdf32b81663b10b448"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 07:21:43 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 07:21:43 2013 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull compat cleanup from Al Viro:\n \"Mostly about syscall wrappers this time; there will be another pile\n  with patches in the same general area from various people, but I\u0027d\n  rather push those after both that and vfs.git pile are in.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:\n  syscalls.h: slightly reduce the jungles of macros\n  get rid of union semop in sys_semctl(2) arguments\n  make do_mremap() static\n  sparc: no need to sign-extend in sync_file_range() wrapper\n  ppc compat wrappers for add_key(2) and request_key(2) are pointless\n  x86: trim sys_ia32.h\n  x86: sys32_kill and sys32_mprotect are pointless\n  get rid of compat_sys_semctl() and friends in case of ARCH_WANT_OLD_COMPAT_IPC\n  merge compat sys_ipc instances\n  consolidate compat lookup_dcookie()\n  convert vmsplice to COMPAT_SYSCALL_DEFINE\n  switch getrusage() to COMPAT_SYSCALL_DEFINE\n  switch epoll_pwait to COMPAT_SYSCALL_DEFINE\n  convert sendfile{,64} to COMPAT_SYSCALL_DEFINE\n  switch signalfd{,4}() to COMPAT_SYSCALL_DEFINE\n  make SYSCALL_DEFINE\u003cn\u003e-generated wrappers do asmlinkage_protect\n  make HAVE_SYSCALL_WRAPPERS unconditional\n  consolidate cond_syscall and SYSCALL_ALIAS declarations\n  teach SYSCALL_DEFINE\u003cn\u003e how to deal with long long/unsigned long long\n  get rid of duplicate logics in __SC_....[1-6] definitions\n"
    },
    {
      "commit": "16fa94b532b1958f508e07eca1a9256351241fbc",
      "tree": "90012a7b7fe2b8cf96f6f5ec12490e0c5e152291",
      "parents": [
        "e0972916e8fe943f342b0dd1c9d43dbf5bc261c2",
        "25f55d9d01ad7a7ad248fd5af1d22675ffd202c5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 30 07:43:28 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 30 07:43:28 2013 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler changes from Ingo Molnar:\n \"The main changes in this development cycle were:\n\n   - full dynticks preparatory work by Frederic Weisbecker\n\n   - factor out the cpu time accounting code better, by Li Zefan\n\n   - multi-CPU load balancer cleanups and improvements by Joonsoo Kim\n\n   - various smaller fixes and cleanups\"\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (45 commits)\n  sched: Fix init NOHZ_IDLE flag\n  sched: Prevent to re-select dst-cpu in load_balance()\n  sched: Rename load_balance_tmpmask to load_balance_mask\n  sched: Move up affinity check to mitigate useless redoing overhead\n  sched: Don\u0027t consider other cpus in our group in case of NEWLY_IDLE\n  sched: Explicitly cpu_idle_type checking in rebalance_domains()\n  sched: Change position of resched_cpu() in load_balance()\n  sched: Fix wrong rq\u0027s runnable_avg update with rt tasks\n  sched: Document task_struct::personality field\n  sched/cpuacct/UML: Fix header file dependency bug on the UML build\n  cgroup: Kill subsys.active flag\n  sched/cpuacct: No need to check subsys active state\n  sched/cpuacct: Initialize cpuacct subsystem earlier\n  sched/cpuacct: Initialize root cpuacct earlier\n  sched/cpuacct: Allocate per_cpu cpuusage for root cpuacct statically\n  sched/cpuacct: Clean up cpuacct.h\n  sched/cpuacct: Remove redundant NULL checks in cpuacct_acount_field()\n  sched/cpuacct: Remove redundant NULL checks in cpuacct_charge()\n  sched/cpuacct: Add cpuacct_acount_field()\n  sched/cpuacct: Add cpuacct_init()\n  ...\n"
    },
    {
      "commit": "cafe563591446cf80bfbc2fe3bc72a2e36cf1060",
      "tree": "c8ae27b13dcdb0219634376ca5e667df32b1173a",
      "parents": [
        "ea6749c705d9e629ed03c7336cc929fc6014b834"
      ],
      "author": {
        "name": "Kent Overstreet",
        "email": "koverstreet@google.com",
        "time": "Sat Mar 23 16:11:31 2013 -0700"
      },
      "committer": {
        "name": "Kent Overstreet",
        "email": "koverstreet@google.com",
        "time": "Sat Mar 23 16:11:31 2013 -0700"
      },
      "message": "bcache: A block layer cache\n\nDoes writethrough and writeback caching, handles unclean shutdown, and\nhas a bunch of other nifty features motivated by real world usage.\n\nSee the wiki at http://bcache.evilpiepirate.org for more.\n\nSigned-off-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\n"
    },
    {
      "commit": "e66eded8309ebf679d3d3c1f5820d1f2ca332c71",
      "tree": "768e1d799f6d6a4a7f85f48d9e9fc431dc8d017c",
      "parents": [
        "6c23cbbd5056b155401b0a2b5567d530e6c750c4"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Mar 13 11:51:49 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 13 15:00:20 2013 -0700"
      },
      "message": "userns: Don\u0027t allow CLONE_NEWUSER | CLONE_FS\n\nDon\u0027t allowing sharing the root directory with processes in a\ndifferent user namespace.  There doesn\u0027t seem to be any point, and to\nallow it would require the overhead of putting a user namespace\nreference in fs_struct (for permission checks) and incrementing that\nreference count on practically every call to fork.\n\nSo just perform the inexpensive test of forbidding sharing fs_struct\nacrosss processes in different user namespaces.  We already disallow\nother forms of threading when unsharing a user namespace so this\nshould be no real burden in practice.\n\nThis updates setns, clone, and unshare to disallow multiple user\nnamespaces sharing an fs_struct.\n\nCc: stable@vger.kernel.org\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9fbc42eac1f6917081dc3b39922b2f1c57fdff28",
      "tree": "9eef797db037ced359dc5abcc6945cfb8f303a09",
      "parents": [
        "b22366cd54c6fe05db426f20adb10f461c19ec06"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Feb 25 17:25:39 2013 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Mar 07 17:10:32 2013 +0100"
      },
      "message": "cputime: Dynamically scale cputime for full dynticks accounting\n\nThe full dynticks cputime accounting is able to account either\nusing the tick or the context tracking subsystem. This way\nthe housekeeping CPU can keep the low overhead tick based\nsolution.\n\nThis latter mode has a low jiffies resolution granularity and\nneed to be scaled against CFS precise runtime accounting to\nimprove its result. We are doing this for CONFIG_TICK_CPU_ACCOUNTING,\nnow we also need to expand it to full dynticks accounting dynamic\noff-case as well.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Kevin Hilman \u003ckhilman@linaro.org\u003e\nCc: Mats Liljegren \u003cmats.liljegren@enea.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Namhyung Kim \u003cnamhyung.kim@lge.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "2cf0966683430b6468f36ca20515a33ca7f2403c",
      "tree": "902080486ebd7988d1250914c3809c4de472a22b",
      "parents": [
        "22d1a35da0e247a006c286842a1846acb4ffed4f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 21 15:25:54 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 03 22:58:33 2013 -0500"
      },
      "message": "make SYSCALL_DEFINE\u003cn\u003e-generated wrappers do asmlinkage_protect\n\n... and switch i386 to HAVE_SYSCALL_WRAPPERS, killing open-coded\nuses of asmlinkage_protect() in a bunch of syscalls.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6f977e6b2f75fdaccfd9be82bbf72fe5c60e8807",
      "tree": "983e4c0c901c7cc9364e109676597347b7c4ec65",
      "parents": [
        "5e62adef9e1d3e8e26dfd6c95be484b955ad2927"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Wed Feb 27 17:03:23 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:12 2013 -0800"
      },
      "message": "fork: unshare: remove dead code\n\nIf new_nsproxy is set we will always call switch_task_namespaces and\nthen set new_nsproxy back to NULL so the reassignment and fall through\ncheck are redundant\n\nSigned-off-by: Alan Cox \u003calan@linux.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": "d895cb1af15c04c522a25c79cc429076987c089b",
      "tree": "895dc9157e28f603d937a58be664e4e440d5530c",
      "parents": [
        "9626357371b519f2b955fef399647181034a77fe",
        "d3d009cb965eae7e002ea5badf603ea8f4c34915"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 20:16:07 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 20:16:07 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs pile (part one) from Al Viro:\n \"Assorted stuff - cleaning namei.c up a bit, fixing -\u003ed_name/-\u003ed_parent\n  locking violations, etc.\n\n  The most visible changes here are death of FS_REVAL_DOT (replaced with\n  \"has -\u003ed_weak_revalidate()\") and a new helper getting from struct file\n  to inode.  Some bits of preparation to xattr method interface changes.\n\n  Misc patches by various people sent this cycle *and* ocfs2 fixes from\n  several cycles ago that should\u0027ve been upstream right then.\n\n  PS: the next vfs pile will be xattr stuff.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (46 commits)\n  saner proc_get_inode() calling conventions\n  proc: avoid extra pde_put() in proc_fill_super()\n  fs: change return values from -EACCES to -EPERM\n  fs/exec.c: make bprm_mm_init() static\n  ocfs2/dlm: use GFP_ATOMIC inside a spin_lock\n  ocfs2: fix possible use-after-free with AIO\n  ocfs2: Fix oops in ocfs2_fast_symlink_readpage() code path\n  get_empty_filp()/alloc_file() leave both -\u003ef_pos and -\u003ef_version zero\n  target: writev() on single-element vector is pointless\n  export kernel_write(), convert open-coded instances\n  fs: encode_fh: return FILEID_INVALID if invalid fid_type\n  kill f_vfsmnt\n  vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op\n  nfsd: handle vfs_getattr errors in acl protocol\n  switch vfs_getattr() to struct path\n  default SET_PERSONALITY() in linux/elf.h\n  ceph: prepopulate inodes only when request is aborted\n  d_hash_and_lookup(): export, switch open-coded instances\n  9p: switch v9fs_set_create_acl() to inode+fid, do it before d_instantiate()\n  9p: split dropping the acls from v9fs_set_create_acl()\n  ...\n"
    },
    {
      "commit": "496ad9aa8ef448058e36ca7a787c61f2e63f0f54",
      "tree": "8f4abde793cd7db5bb8fde6d27ebcacd0e54379a",
      "parents": [
        "57eccb830f1cc93d4b506ba306d8dfa685e0c88f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 23 17:07:38 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 22 23:31:31 2013 -0500"
      },
      "message": "new helper: file_inode(file)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b2c77a57e4a0a7877e357dead7ee8acc19944f3e",
      "tree": "fa192b5a058711299c2a8ce2621df6c9bd8f3a99",
      "parents": [
        "c3c186403c6abd32e719f005f0af950155a9e54d",
        "6a61671bb2f3a1bd12cd17b8fca811a624782632"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Feb 05 13:10:33 2013 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Feb 05 13:10:33 2013 +0100"
      },
      "message": "Merge tag \u0027full-dynticks-cputime-for-mingo\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into sched/core\n\nPull full-dynticks (user-space execution is undisturbed and\nreceives no timer IRQs) preparation changes that convert the\ncputime accounting code to be full-dynticks ready,\nfrom Frederic Weisbecker:\n\n \"This implements the cputime accounting on full dynticks CPUs.\n\n  Typical cputime stats infrastructure relies on the timer tick and\n  its periodic polling on the CPU to account the amount of time\n  spent by the CPUs and the tasks per high level domains such as\n  userspace, kernelspace, guest, ...\n\n  Now we are preparing to implement full dynticks capability on\n  Linux for Real Time and HPC users who want full CPU isolation.\n  This feature requires a cputime accounting that doesn\u0027t depend\n  on the timer tick.\n\n  To implement it, this new cputime infrastructure plugs into\n  kernel/user/guest boundaries to take snapshots of cputime and\n  flush these to the stats when needed. This performs pretty\n  much like CONFIG_VIRT_CPU_ACCOUNTING except that context location\n  and cputime snaphots are synchronized between write and read\n  side such that the latter can safely retrieve the pending tickless\n  cputime of a task and add it to its latest cputime snapshot to\n  return the correct result to the user.\"\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "6a61671bb2f3a1bd12cd17b8fca811a624782632",
      "tree": "0afc2915fb7e517472710a49a524510322dd5baa",
      "parents": [
        "c11f11fcbdb5be790c565aed46411486a7586afc"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Dec 16 20:00:34 2012 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Jan 27 20:35:47 2013 +0100"
      },
      "message": "cputime: Safely read cputime of full dynticks CPUs\n\nWhile remotely reading the cputime of a task running in a\nfull dynticks CPU, the values stored in utime/stime fields\nof struct task_struct may be stale. Its values may be those\nof the last kernel \u003c-\u003e user transition time snapshot and\nwe need to add the tickless time spent since this snapshot.\n\nTo fix this, flush the cputime of the dynticks CPUs on\nkernel \u003c-\u003e user transition and record the time / context\nwhere we did this. Then on top of this snapshot and the current\ntime, perform the fixup on the reader side from task_times()\naccessors.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Li Zhong \u003czhong@linux.vnet.ibm.com\u003e\nCc: Namhyung Kim \u003cnamhyung.kim@lge.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n[fixed kvm module related build errors]\nSigned-off-by: Sedat Dilek \u003csedat.dilek@gmail.com\u003e\n"
    },
    {
      "commit": "3a142ed962958d3063f648738a3384ab90017100",
      "tree": "6e7e98108edf793ba012c4e2efa78deb8a2cc052",
      "parents": [
        "edea0d03ee5f0ae0051b6adb6681ebdf976b1ca4",
        "b1e0318b8cd4bdbb0fbc48967b0350483ad9bd69"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 20 13:58:48 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 20 13:58:48 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull misc syscall fixes from Al Viro:\n\n - compat syscall fixes (discussed back in December)\n\n - a couple of \"make life easier for sigaltstack stuff by reducing\n   inter-tree dependencies\"\n\n - fix up compiler/asmlinkage calling convention disagreement of\n   sys_clone()\n\n - misc\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:\n  sys_clone() needs asmlinkage_protect\n  make sure that /linuxrc has std{in,out,err}\n  x32: fix sigtimedwait\n  x32: fix waitid()\n  switch compat_sys_wait4() and compat_sys_waitid() to COMPAT_SYSCALL_DEFINE\n  switch compat_sys_sigaltstack() to COMPAT_SYSCALL_DEFINE\n  CONFIG_GENERIC_SIGALTSTACK build breakage with asm-generic/syscalls.h\n  Ensure that kernel_init_freeable() is not inlined into non __init code\n"
    },
    {
      "commit": "b1e0318b8cd4bdbb0fbc48967b0350483ad9bd69",
      "tree": "c8c0eda42707c639c67c471abbc0bca6f64213d2",
      "parents": [
        "43b16820249396aea7eb57c747106e211e54bed5"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 19 22:13:34 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 19 22:13:34 2013 -0500"
      },
      "message": "sys_clone() needs asmlinkage_protect\n\nCc: stable@vger.kernel.org\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8382fcac1b813ad0a4e68a838fc7ae93fa39eda0",
      "tree": "a484c6a712a7361a07d9514ea86f835b70ad3414",
      "parents": [
        "a49f0d1ea3ec94fc7cf33a7c36a16343b74bd565"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Dec 20 19:26:06 2012 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Dec 24 22:53:14 2012 -0800"
      },
      "message": "pidns: Outlaw thread creation after unshare(CLONE_NEWPID)\n\nThe sequence:\nunshare(CLONE_NEWPID)\nclone(CLONE_THREAD|CLONE_SIGHAND|CLONE_VM)\n\nCreates a new process in the new pid namespace without setting\npid_ns-\u003echild_reaper.  After forking this results in a NULL\npointer dereference.\n\nAvoid this and other nonsense scenarios that can show up after\ncreating a new pid namespace with unshare by adding a new\ncheck in copy_prodcess.\n\nPointed-out-by:  Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by:  Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "54d46ea993744c5408e39ce0cb4851e13cbea716",
      "tree": "8e38fa92cc2ae72e0353c44e1e68be9bf5a7a058",
      "parents": [
        "f59dc2bb5a50b26ea751f9eac1c81e4cc7de5257",
        "50ececcfa7d1acee085b2c518cad495062db6379"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 18:05:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 18:05:28 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull signal handling cleanups from Al Viro:\n \"sigaltstack infrastructure + conversion for x86, alpha and um,\n  COMPAT_SYSCALL_DEFINE infrastructure.\n\n  Note that there are several conflicts between \"unify\n  SS_ONSTACK/SS_DISABLE definitions\" and UAPI patches in mainline;\n  resolution is trivial - just remove definitions of SS_ONSTACK and\n  SS_DISABLED from arch/*/uapi/asm/signal.h; they are all identical and\n  include/uapi/linux/signal.h contains the unified variant.\"\n\nFixed up conflicts as per Al.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:\n  alpha: switch to generic sigaltstack\n  new helpers: __save_altstack/__compat_save_altstack, switch x86 and um to those\n  generic compat_sys_sigaltstack()\n  introduce generic sys_sigaltstack(), switch x86 and um to it\n  new helper: compat_user_stack_pointer()\n  new helper: restore_altstack()\n  unify SS_ONSTACK/SS_DISABLE definitions\n  new helper: current_user_stack_pointer()\n  missing user_stack_pointer() instances\n  Bury the conditionals from kernel_thread/kernel_execve series\n  COMPAT_SYSCALL_DEFINE: infrastructure\n"
    },
    {
      "commit": "ae903caae267154de7cf8576b130ff474630596b",
      "tree": "a39d238d7fd1742f7f20cacbd24a4d1b4957176e",
      "parents": [
        "468366138850f20543f1d4878028900672b23dae"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 14 12:44:11 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 19 18:07:38 2012 -0500"
      },
      "message": "Bury the conditionals from kernel_thread/kernel_execve series\n\nAll architectures have\n\tCONFIG_GENERIC_KERNEL_THREAD\n\tCONFIG_GENERIC_KERNEL_EXECVE\n\t__ARCH_WANT_SYS_EXECVE\nNone of them have __ARCH_WANT_KERNEL_EXECVE and there are only two callers\nof kernel_execve() (which is a trivial wrapper for do_execve() now) left.\nKill the conditionals and make both callers use do_execve().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2ad306b17c0ac5a1b1f250d5f772aeb87fdf1eba",
      "tree": "743e6092019959dd455091d75b3fab2aa7f0a2aa",
      "parents": [
        "c8b2a36fb1597e9390cf4c1a7f2dd394dc7d7b17"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue Dec 18 14:22:18 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 18 15:02:13 2012 -0800"
      },
      "message": "fork: protect architectures where THREAD_SIZE \u003e\u003d PAGE_SIZE against fork bombs\n\nBecause those architectures will draw their stacks directly from the page\nallocator, rather than the slab cache, we can directly pass __GFP_KMEMCG\nflag, and issue the corresponding free_pages.\n\nThis code path is taken when the architecture doesn\u0027t define\nCONFIG_ARCH_THREAD_INFO_ALLOCATOR (only ia64 seems to), and has\nTHREAD_SIZE \u003e\u003d PAGE_SIZE.  Luckily, most - if not all - of the remaining\narchitectures fall in this category.\n\nThis will guarantee that every stack page is accounted to the memcg the\nprocess currently lives on, and will have the allocations to fail if they\ngo over limit.\n\nFor the time being, I am defining a new variant of THREADINFO_GFP, not to\nmess with the other path.  Once the slab is also tracked by memcg, we can\nget rid of that flag.\n\nTested to successfully protect against :(){ :|:\u0026 };:\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@redhat.com\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: JoonSoo Kim \u003cjs1304@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6a2b60b17b3e48a418695a94bd2420f6ab32e519",
      "tree": "54b7792fa68b8890f710fa6398b6ba8626a039a8",
      "parents": [
        "9228ff90387e276ad67b10c0eb525c9d6a57d5e9",
        "98f842e675f96ffac96e6c50315790912b2812be"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 15:44:47 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 15:44:47 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull user namespace changes from Eric Biederman:\n \"While small this set of changes is very significant with respect to\n  containers in general and user namespaces in particular.  The user\n  space interface is now complete.\n\n  This set of changes adds support for unprivileged users to create user\n  namespaces and as a user namespace root to create other namespaces.\n  The tyranny of supporting suid root preventing unprivileged users from\n  using cool new kernel features is broken.\n\n  This set of changes completes the work on setns, adding support for\n  the pid, user, mount namespaces.\n\n  This set of changes includes a bunch of basic pid namespace\n  cleanups/simplifications.  Of particular significance is the rework of\n  the pid namespace cleanup so it no longer requires sending out\n  tendrils into all kinds of unexpected cleanup paths for operation.  At\n  least one case of broken error handling is fixed by this cleanup.\n\n  The files under /proc/\u003cpid\u003e/ns/ have been converted from regular files\n  to magic symlinks which prevents incorrect caching by the VFS,\n  ensuring the files always refer to the namespace the process is\n  currently using and ensuring that the ptrace_mayaccess permission\n  checks are always applied.\n\n  The files under /proc/\u003cpid\u003e/ns/ have been given stable inode numbers\n  so it is now possible to see if different processes share the same\n  namespaces.\n\n  Through the David Miller\u0027s net tree are changes to relax many of the\n  permission checks in the networking stack to allowing the user\n  namespace root to usefully use the networking stack.  Similar changes\n  for the mount namespace and the pid namespace are coming through my\n  tree.\n\n  Two small changes to add user namespace support were commited here adn\n  in David Miller\u0027s -net tree so that I could complete the work on the\n  /proc/\u003cpid\u003e/ns/ files in this tree.\n\n  Work remains to make it safe to build user namespaces and 9p, afs,\n  ceph, cifs, coda, gfs2, ncpfs, nfs, nfsd, ocfs2, and xfs so the\n  Kconfig guard remains in place preventing that user namespaces from\n  being built when any of those filesystems are enabled.\n\n  Future design work remains to allow root users outside of the initial\n  user namespace to mount more than just /proc and /sys.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (38 commits)\n  proc: Usable inode numbers for the namespace file descriptors.\n  proc: Fix the namespace inode permission checks.\n  proc: Generalize proc inode allocation\n  userns: Allow unprivilged mounts of proc and sysfs\n  userns: For /proc/self/{uid,gid}_map derive the lower userns from the struct file\n  procfs: Print task uids and gids in the userns that opened the proc file\n  userns: Implement unshare of the user namespace\n  userns: Implent proc namespace operations\n  userns: Kill task_user_ns\n  userns: Make create_new_namespaces take a user_ns parameter\n  userns: Allow unprivileged use of setns.\n  userns: Allow unprivileged users to create new namespaces\n  userns: Allow setting a userns mapping to your current uid.\n  userns: Allow chown and setgid preservation\n  userns: Allow unprivileged users to create user namespaces.\n  userns: Ignore suid and sgid on binaries if the uid or gid can not be mapped\n  userns: fix return value on mntns_install() failure\n  vfs: Allow unprivileged manipulation of the mount namespace.\n  vfs: Only support slave subtrees across different user namespaces\n  vfs: Add a user namespace reference from struct mnt_namespace\n  ...\n"
    },
    {
      "commit": "3d59eebc5e137bd89c6351e4c70e90ba1d0dc234",
      "tree": "b4ddfd0b057454a7437a3b4e3074a3b8b4b03817",
      "parents": [
        "11520e5e7c1855fc3bf202bb3be35a39d9efa034",
        "4fc3f1d66b1ef0d7b8dc11f4ff1cc510f78b37d6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 16 14:33:25 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 16 15:18:08 2012 -0800"
      },
      "message": "Merge tag \u0027balancenuma-v11\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mel/linux-balancenuma\n\nPull Automatic NUMA Balancing bare-bones from Mel Gorman:\n \"There are three implementations for NUMA balancing, this tree\n  (balancenuma), numacore which has been developed in tip/master and\n  autonuma which is in aa.git.\n\n  In almost all respects balancenuma is the dumbest of the three because\n  its main impact is on the VM side with no attempt to be smart about\n  scheduling.  In the interest of getting the ball rolling, it would be\n  desirable to see this much merged for 3.8 with the view to building\n  scheduler smarts on top and adapting the VM where required for 3.9.\n\n  The most recent set of comparisons available from different people are\n\n    mel:    https://lkml.org/lkml/2012/12/9/108\n    mingo:  https://lkml.org/lkml/2012/12/7/331\n    tglx:   https://lkml.org/lkml/2012/12/10/437\n    srikar: https://lkml.org/lkml/2012/12/10/397\n\n  The results are a mixed bag.  In my own tests, balancenuma does\n  reasonably well.  It\u0027s dumb as rocks and does not regress against\n  mainline.  On the other hand, Ingo\u0027s tests shows that balancenuma is\n  incapable of converging for this workloads driven by perf which is bad\n  but is potentially explained by the lack of scheduler smarts.  Thomas\u0027\n  results show balancenuma improves on mainline but falls far short of\n  numacore or autonuma.  Srikar\u0027s results indicate we all suffer on a\n  large machine with imbalanced node sizes.\n\n  My own testing showed that recent numacore results have improved\n  dramatically, particularly in the last week but not universally.\n  We\u0027ve butted heads heavily on system CPU usage and high levels of\n  migration even when it shows that overall performance is better.\n  There are also cases where it regresses.  Of interest is that for\n  specjbb in some configurations it will regress for lower numbers of\n  warehouses and show gains for higher numbers which is not reported by\n  the tool by default and sometimes missed in treports.  Recently I\n  reported for numacore that the JVM was crashing with\n  NullPointerExceptions but currently it\u0027s unclear what the source of\n  this problem is.  Initially I thought it was in how numacore batch\n  handles PTEs but I\u0027m no longer think this is the case.  It\u0027s possible\n  numacore is just able to trigger it due to higher rates of migration.\n\n  These reports were quite late in the cycle so I/we would like to start\n  with this tree as it contains much of the code we can agree on and has\n  not changed significantly over the last 2-3 weeks.\"\n\n* tag \u0027balancenuma-v11\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mel/linux-balancenuma: (50 commits)\n  mm/rmap, migration: Make rmap_walk_anon() and try_to_unmap_anon() more scalable\n  mm/rmap: Convert the struct anon_vma::mutex to an rwsem\n  mm: migrate: Account a transhuge page properly when rate limiting\n  mm: numa: Account for failed allocations and isolations as migration failures\n  mm: numa: Add THP migration for the NUMA working set scanning fault case build fix\n  mm: numa: Add THP migration for the NUMA working set scanning fault case.\n  mm: sched: numa: Delay PTE scanning until a task is scheduled on a new node\n  mm: sched: numa: Control enabling and disabling of NUMA balancing if !SCHED_DEBUG\n  mm: sched: numa: Control enabling and disabling of NUMA balancing\n  mm: sched: Adapt the scanning rate if a NUMA hinting fault does not migrate\n  mm: numa: Use a two-stage filter to restrict pages being migrated for unlikely task\u003c-\u003enode relationships\n  mm: numa: migrate: Set last_nid on newly allocated page\n  mm: numa: split_huge_page: Transfer last_nid on tail page\n  mm: numa: Introduce last_nid to the page frame\n  sched: numa: Slowly increase the scanning period as NUMA faults are handled\n  mm: numa: Rate limit setting of pte_numa if node is saturated\n  mm: numa: Rate limit the amount of memory that is migrated between nodes\n  mm: numa: Structures for Migrate On Fault per NUMA migration rate limiting\n  mm: numa: Migrate pages handled during a pmd_numa hinting fault\n  mm: numa: Migrate on reference policy\n  ...\n"
    },
    {
      "commit": "9977d9b379cb77e0f67bd6f4563618106e58e11d",
      "tree": "0191accfddf578edb52c69c933d64521e3dce297",
      "parents": [
        "cf4af01221579a4e895f43dbfc47598fbfc5a731",
        "541880d9a2c7871f6370071d55aa6662d329c51e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 12:22:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 12:22:13 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull big execve/kernel_thread/fork unification series from Al Viro:\n \"All architectures are converted to new model.  Quite a bit of that\n  stuff is actually shared with architecture trees; in such cases it\u0027s\n  literally shared branch pulled by both, not a cherry-pick.\n\n  A lot of ugliness and black magic is gone (-3KLoC total in this one):\n\n   - kernel_thread()/kernel_execve()/sys_execve() redesign.\n\n     We don\u0027t do syscalls from kernel anymore for either kernel_thread()\n     or kernel_execve():\n\n     kernel_thread() is essentially clone(2) with callback run before we\n     return to userland, the callbacks either never return or do\n     successful do_execve() before returning.\n\n     kernel_execve() is a wrapper for do_execve() - it doesn\u0027t need to\n     do transition to user mode anymore.\n\n     As a result kernel_thread() and kernel_execve() are\n     arch-independent now - they live in kernel/fork.c and fs/exec.c\n     resp.  sys_execve() is also in fs/exec.c and it\u0027s completely\n     architecture-independent.\n\n   - daemonize() is gone, along with its parts in fs/*.c\n\n   - struct pt_regs * is no longer passed to do_fork/copy_process/\n     copy_thread/do_execve/search_binary_handler/-\u003eload_binary/do_coredump.\n\n   - sys_fork()/sys_vfork()/sys_clone() unified; some architectures\n     still need wrappers (ones with callee-saved registers not saved in\n     pt_regs on syscall entry), but the main part of those suckers is in\n     kernel/fork.c now.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: (113 commits)\n  do_coredump(): get rid of pt_regs argument\n  print_fatal_signal(): get rid of pt_regs argument\n  ptrace_signal(): get rid of unused arguments\n  get rid of ptrace_signal_deliver() arguments\n  new helper: signal_pt_regs()\n  unify default ptrace_signal_deliver\n  flagday: kill pt_regs argument of do_fork()\n  death to idle_regs()\n  don\u0027t pass regs to copy_process()\n  flagday: don\u0027t pass regs to copy_thread()\n  bfin: switch to generic vfork, get rid of pointless wrappers\n  xtensa: switch to generic clone()\n  openrisc: switch to use of generic fork and clone\n  unicore32: switch to generic clone(2)\n  score: switch to generic fork/vfork/clone\n  c6x: sanitize copy_thread(), get rid of clone(2) wrapper, switch to generic clone()\n  take sys_fork/sys_vfork/sys_clone prototypes to linux/syscalls.h\n  mn10300: switch to generic fork/vfork/clone\n  h8300: switch to generic fork/vfork/clone\n  tile: switch to generic clone()\n  ...\n\nConflicts:\n\tarch/microblaze/include/asm/Kbuild\n"
    },
    {
      "commit": "d206e09036d6201f90b2719484c8a59526c46125",
      "tree": "84b9057919bcb8cfd1cff47baa5fc74457e77d6d",
      "parents": [
        "fef3ff2eb777e76cfa5ae67591982d902c17139c",
        "15ef4ffaa797034d5ff82844daf8f595d7c6d53c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 08:18:24 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 08:18:24 2012 -0800"
      },
      "message": "Merge branch \u0027for-3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup\n\nPull cgroup changes from Tejun Heo:\n \"A lot of activities on cgroup side.  The big changes are focused on\n  making cgroup hierarchy handling saner.\n\n   - cgroup_rmdir() had peculiar semantics - it allowed cgroup\n     destruction to be vetoed by individual controllers and tried to\n     drain refcnt synchronously.  The vetoing never worked properly and\n     caused good deal of contortions in cgroup.  memcg was the last\n     reamining user.  Michal Hocko removed the usage and cgroup_rmdir()\n     path has been simplified significantly.  This was done in a\n     separate branch so that the memcg people can base further memcg\n     changes on top.\n\n   - The above allowed cleaning up cgroup lifecycle management and\n     implementation of generic cgroup iterators which are used to\n     improve hierarchy support.\n\n   - cgroup_freezer updated to allow migration in and out of a frozen\n     cgroup and handle hierarchy.  If a cgroup is frozen, all descendant\n     cgroups are frozen.\n\n   - netcls_cgroup and netprio_cgroup updated to handle hierarchy\n     properly.\n\n   - Various fixes and cleanups.\n\n   - Two merge commits.  One to pull in memcg and rmdir cleanups (needed\n     to build iterators).  The other pulled in cgroup/for-3.7-fixes for\n     device_cgroup fixes so that further device_cgroup patches can be\n     stacked on top.\"\n\nFixed up a trivial conflict in mm/memcontrol.c as per Tejun (due to\ncommit bea8c150a7 (\"memcg: fix hotplugged memory zone oops\") in master\ntouching code close to commit 2ef37d3fe4 (\"memcg: Simplify\nmem_cgroup_force_empty_list error handling\") in for-3.8)\n\n* \u0027for-3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (65 commits)\n  cgroup: update Documentation/cgroups/00-INDEX\n  cgroup_rm_file: don\u0027t delete the uncreated files\n  cgroup: remove subsystem files when remounting cgroup\n  cgroup: use cgroup_addrm_files() in cgroup_clear_directory()\n  cgroup: warn about broken hierarchies only after css_online\n  cgroup: list_del_init() on removed events\n  cgroup: fix lockdep warning for event_control\n  cgroup: move list add after list head initilization\n  netprio_cgroup: allow nesting and inherit config on cgroup creation\n  netprio_cgroup: implement netprio[_set]_prio() helpers\n  netprio_cgroup: use cgroup-\u003eid instead of cgroup_netprio_state-\u003eprioidx\n  netprio_cgroup: reimplement priomap expansion\n  netprio_cgroup: shorten variable names in extend_netdev_table()\n  netprio_cgroup: simplify write_priomap()\n  netcls_cgroup: move config inheritance to -\u003ecss_online() and remove .broken_hierarchy marking\n  cgroup: remove obsolete guarantee from cgroup_task_migrate.\n  cgroup: add cgroup-\u003eid\n  cgroup, cpuset: remove cgroup_subsys-\u003epost_clone()\n  cgroup: s/CGRP_CLONE_CHILDREN/CGRP_CPUSET_CLONE_CHILDREN/\n  cgroup: rename -\u003ecreate/post_create/pre_destroy/destroy() to -\u003ecss_alloc/online/offline/free()\n  ...\n"
    },
    {
      "commit": "f57d54bab696133fae569c5f01352249c36fc74f",
      "tree": "8ebe3c6deaf95c424c86843c3d290fbf2a9e80d2",
      "parents": [
        "da830e589a45f0c42eef6f3cbd07275f8893f181",
        "c1ad41f1f7270c1956da13fa8fd59d8d5929d56e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:21:38 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:21:38 2012 -0800"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler updates from Ingo Molnar:\n \"The biggest change affects group scheduling: we now track the runnable\n  average on a per-task entity basis, allowing a smoother, exponential\n  decay average based load/weight estimation instead of the previous\n  binary on-the-runqueue/off-the-runqueue load weight method.\n\n  This will inevitably disturb workloads that were in some sort of\n  borderline balancing state or unstable equilibrium, so an eye has to\n  be kept on regressions.\n\n  For that reason the new load average is only limited to group\n  scheduling (shares distribution) at the moment (which was also hurting\n  the most from the prior, crude weight calculation and whose scheduling\n  quality wins most from this change) - but we plan to extend this to\n  regular SMP balancing as well in the future, which will simplify and\n  speed up things a bit.\n\n  Other changes involve ongoing preparatory work to extend NOHZ to the\n  scheduler as well, eventually allowing completely irq-free user-space\n  execution.\"\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (33 commits)\n  Revert \"sched/autogroup: Fix crash on reboot when autogroup is disabled\"\n  cputime: Comment cputime\u0027s adjusting code\n  cputime: Consolidate cputime adjustment code\n  cputime: Rename thread_group_times to thread_group_cputime_adjusted\n  cputime: Move thread_group_cputime() to sched code\n  vtime: Warn if irqs aren\u0027t disabled on system time accounting APIs\n  vtime: No need to disable irqs on vtime_account()\n  vtime: Consolidate a bit the ctx switch code\n  vtime: Explicitly account pending user time on process tick\n  vtime: Remove the underscore prefix invasion\n  sched/autogroup: Fix crash on reboot when autogroup is disabled\n  cputime: Separate irqtime accounting from generic vtime\n  cputime: Specialize irq vtime hooks\n  kvm: Directly account vtime to system on guest switch\n  vtime: Make vtime_account_system() irqsafe\n  vtime: Gather vtime declarations to their own header file\n  sched: Describe CFS load-balancer\n  sched: Introduce temporary FAIR_GROUP_SCHED dependency for load-tracking\n  sched: Make __update_entity_runnable_avg() fast\n  sched: Update_cfs_shares at period edge\n  ...\n"
    },
    {
      "commit": "5bca23035391928c4c7301835accca3551b96cc2",
      "tree": "2feb63abf318e6edfded8bb97b43ca29c3c5b312",
      "parents": [
        "3105b86a9fee7d2c2e76edb53bbbc4027599628f"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Thu Nov 22 14:40:03 2012 +0000"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:56 2012 +0000"
      },
      "message": "mm: sched: numa: Delay PTE scanning until a task is scheduled on a new node\n\nDue to the fact that migrations are driven by the CPU a task is running\non there is no point tracking NUMA faults until one task runs on a new\nnode. This patch tracks the first node used by an address space. Until\nit changes, PTE scanning is disabled and no NUMA hinting faults are\ntrapped. This should help workloads that are short-lived, do not care\nabout NUMA placement or have bound themselves to a single node.\n\nThis takes advantage of the logic in \"mm: sched: numa: Implement slow\nstart for working set sampling\" to delay when the checks are made. This\nwill take advantage of processes that set their CPU and node bindings\nearly in their lifetime. It will also potentially allow any initial load\nbalancing to take place.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\n"
    },
    {
      "commit": "e80d6661c3a5caa0cebec0853c6cb0db090fb506",
      "tree": "efc60762bbcdf8904f9779310ac60d0131ac9f3d",
      "parents": [
        "18c26c27ae0abe82253cb2e2363df465dbbb657e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 22 23:10:08 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Nov 29 00:01:08 2012 -0500"
      },
      "message": "flagday: kill pt_regs argument of do_fork()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "18c26c27ae0abe82253cb2e2363df465dbbb657e",
      "tree": "b822ed3267443e0b4b05e852fb0d2b709b916c65",
      "parents": [
        "62e791c1b8ea481c72c299dee4f62c04aaef765c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 22 22:53:20 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 28 23:43:42 2012 -0500"
      },
      "message": "death to idle_regs()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "62e791c1b8ea481c72c299dee4f62c04aaef765c",
      "tree": "6fca8f880b5cd3402743b374043a79b62c613979",
      "parents": [
        "afa86fc426ff7e7f5477f15da9c405d08d5cf790"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 22 22:52:26 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 28 23:43:42 2012 -0500"
      },
      "message": "don\u0027t pass regs to copy_process()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "afa86fc426ff7e7f5477f15da9c405d08d5cf790",
      "tree": "0f82925269757902ce6f7c287a968f7b439d2b2d",
      "parents": [
        "135c37b83c81b79a888108e3f7c5f64423d8a851"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 22 22:51:14 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 28 23:43:42 2012 -0500"
      },
      "message": "flagday: don\u0027t pass regs to copy_thread()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d2125043aebf7f53cd1c72115c17b01d0bc06ce1",
      "tree": "e6d510a22905d870a612660c2da0bdb6e36bc7e6",
      "parents": [
        "25906730ec01be664534c9439d7cf5a373e8a4e4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 23 13:17:59 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 28 21:49:04 2012 -0500"
      },
      "message": "generic sys_fork / sys_vfork / sys_clone\n\n... and get rid of idiotic struct pt_regs * in asm-generic/syscalls.h\nprototypes of the same, while we are at it.  Eventually we want those\nin linux/syscalls.h, of course, but that\u0027ll have to wait a bit.\n\nNote that there are *three* variants of sys_clone() order of arguments.\nBraindamage galore...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d37f761dbd276790f70dcf73a287fde2c3464482",
      "tree": "302d4bda699ab2e159b3a180f253019a38bf8132",
      "parents": [
        "e80d0a1ae8bb8fee0edd37427836f108b30f596b"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Nov 22 00:58:35 2012 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Nov 28 17:08:10 2012 +0100"
      },
      "message": "cputime: Consolidate cputime adjustment code\n\ntask_cputime_adjusted() and thread_group_cputime_adjusted()\nessentially share the same code. They just don\u0027t use the same\nsource:\n\n* The first function uses the cputime in the task struct and the\nprevious adjusted snapshot that ensures monotonicity.\n\n* The second adds the cputime of all tasks in the group and the\nprevious adjusted snapshot of the whole group from the signal\nstructure.\n\nJust consolidate the common code that does the adjustment. These\nfunctions just need to fetch the values from the appropriate\nsource.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "b2e0d98705e60e45bbb3c0032c48824ad7ae0704",
      "tree": "e187c82e1c3babd34095f2b946614131719bbb03",
      "parents": [
        "cde1975bc242f3e1072bde623ef378e547b73f91"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Jul 26 05:15:35 2012 -0700"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Nov 20 04:18:14 2012 -0800"
      },
      "message": "userns: Implement unshare of the user namespace\n\n- Add CLONE_THREAD to the unshare flags if CLONE_NEWUSER is selected\n  As changing user namespaces is only valid if all there is only\n  a single thread.\n- Restore the code to add CLONE_VM if CLONE_THREAD is selected and\n  the code to addCLONE_SIGHAND if CLONE_VM is selected.\n  Making the constraints in the code clear.\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "5eaf563e53294d6696e651466697eb9d491f3946",
      "tree": "a09a97b50613493b18eba220d7e7d2bcf4d383fa",
      "parents": [
        "3cdf5b45ffbac294bcdfac0393df72f7687c01e8"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Nov 21 17:22:31 2011 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Nov 19 05:59:24 2012 -0800"
      },
      "message": "userns: Allow unprivileged users to create user namespaces.\n\nNow that we have been through every permission check in the kernel\nhaving uid \u003d\u003d 0 and gid \u003d\u003d 0 in your local user namespace no\nlonger adds any special privileges.  Even having a full set\nof caps in your local user namespace is safe because capabilies\nare relative to your local user namespace, and do not confer\nunexpected privileges.\n\nOver the long term this should allow much more of the kernels\nfunctionality to be safely used by non-root users.  Functionality\nlike unsharing the mount namespace that is only unsafe because\nit can fool applications whose privileges are raised when they\nare executed.  Since those applications have no privileges in\na user namespaces it becomes safe to spoof and confuse those\napplications all you want.\n\nThose capabilities will still need to be enabled carefully because\nwe may still need things like rlimits on the number of unprivileged\nmounts but that is to avoid DOS attacks not to avoid fooling root\nowned processes.\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "50804fe3737ca6a5942fdc2057a18a8141d00141",
      "tree": "ae85d7ba1f24111f225f794e3310c39319d5a412",
      "parents": [
        "1c4042c29bd2e85aac4110552ca8ade763762e84"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Mar 02 15:41:50 2010 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Nov 19 05:59:16 2012 -0800"
      },
      "message": "pidns: Support unsharing the pid namespace.\n\nUnsharing of the pid namespace unlike unsharing of other namespaces\ndoes not take affect immediately.  Instead it affects the children\ncreated with fork and clone.  The first of these children becomes the init\nprocess of the new pid namespace, the rest become oddball children\nof pid 0.  From the point of view of the new pid namespace the process\nthat created it is pid 0, as it\u0027s pid does not map.\n\nA couple of different semantics were considered but this one was\nsettled on because it is easy to implement and it is usable from\npam modules.  The core reasons for the existence of unshare.\n\nI took a survey of the callers of pam modules and the following\nappears to be a representative sample of their logic.\n{\n\tsetup stuff include pam\n\tchild \u003d fork();\n\tif (!child) {\n\t\tsetuid()\n                exec /bin/bash\n        }\n        waitpid(child);\n\n        pam and other cleanup\n}\n\nAs you can see there is a fork to create the unprivileged user\nspace process.  Which means that the unprivileged user space\nprocess will appear as pid 1 in the new pid namespace.  Further\nmost login processes do not cope with extraneous children which\nmeans shifting the duty of reaping extraneous child process to\nthe creator of those extraneous children makes the system more\ncomprehensible.\n\nThe practical reason for this set of pid namespace semantics is\nthat it is simple to implement and verify they work correctly.\nWhereas an implementation that requres changing the struct\npid on a process comes with a lot more races and pain.  Not\nthe least of which is that glibc caches getpid().\n\nThese semantics are implemented by having two notions\nof the pid namespace of a proces.  There is task_active_pid_ns\nwhich is the pid namspace the process was created with\nand the pid namespace that all pids are presented to\nthat process in.  The task_active_pid_ns is stored\nin the struct pid of the task.\n\nThen there is the pid namespace that will be used for children\nthat pid namespace is stored in task-\u003ensproxy-\u003epid_ns.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "1c4042c29bd2e85aac4110552ca8ade763762e84",
      "tree": "90b34aeae51c9afa088eac37be4e8a14a038e6be",
      "parents": [
        "57e8391d327609cbf12d843259c968b9e5c1838f"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jul 12 17:10:36 2010 -0700"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Nov 19 05:59:15 2012 -0800"
      },
      "message": "pidns: Consolidate initialzation of special init task state\n\nInstead of setting child_reaper and SIGNAL_UNKILLABLE one way\nfor the system init process, and another way for pid namespace\ninit processes test pid-\u003enr \u003d\u003d 1 and use the same code for both.\n\nFor the global init this results in SIGNAL_UNKILLABLE being set\nmuch earlier in the initialization process.\n\nThis is a small cleanup and it paves the way for allowing unshare and\nenter of the pid namespace as that path like our global init also will\nnot set CLONE_NEWPID.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "0a01f2cc390e10633a54f72c608cc3fe19a50c3d",
      "tree": "e713a1c45b5ce125a5d33b61d528cd45264d47a7",
      "parents": [
        "17cf22c33e1f1b5e435469c84e43872579497653"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Aug 01 10:33:47 2012 -0700"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Nov 19 05:59:10 2012 -0800"
      },
      "message": "pidns: Make the pidns proc mount/umount logic obvious.\n\nTrack the number of pids in the proc hash table.  When the number of\npids goes to 0 schedule work to unmount the kernel mount of proc.\n\nMove the mount of proc into alloc_pid when we allocate the pid for\ninit.\n\nRemove the surprising calls of pid_ns_release proc in fork and\nproc_flush_task.  Those code paths really shouldn\u0027t know about proc\nnamespace implementation details and people have demonstrated several\ntimes that finding and understanding those code paths is difficult and\nnon-obvious.\n\nBecause of the call path detach pid is alwasy called with the\nrtnl_lock held free_pid is not allowed to sleep, so the work to\nunmounting proc is moved to a work queue.  This has the side benefit\nof not blocking the entire world waiting for the unnecessary\nrcu_barrier in deactivate_locked_super.\n\nIn the process of making the code clear and obvious this fixes a bug\nreported by Gao feng \u003cgaofeng@cn.fujitsu.com\u003e where we would leak a\nmount of proc during clone(CLONE_NEWPID|CLONE_NEWNET) if copy_pid_ns\nsucceeded and copy_net_ns failed.\n\nAcked-by: \"Serge E. Hallyn\" \u003cserge@hallyn.com\u003e\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "17cf22c33e1f1b5e435469c84e43872579497653",
      "tree": "c5cec307c06f7e4ddc26e04e73c8833897b67113",
      "parents": [
        "49f4d8b93ccf9454284b6f524b96c66d8d7fbccc"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Mar 02 14:51:53 2010 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Nov 19 05:59:09 2012 -0800"
      },
      "message": "pidns: Use task_active_pid_ns where appropriate\n\nThe expressions tsk-\u003ensproxy-\u003epid_ns and task_active_pid_ns\naka ns_of_pid(task_pid(tsk)) should have the same number of\ncache line misses with the practical difference that\nns_of_pid(task_pid(tsk)) is released later in a processes life.\n\nFurthermore by using task_active_pid_ns it becomes trivial\nto write an unshare implementation for the the pid namespace.\n\nSo I have used task_active_pid_ns everywhere I can.\n\nIn fork since the pid has not yet been attached to the\nprocess I use ns_of_pid, to achieve the same effect.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "32cdba1e05418909708a17e52505e8b2ba4381d1",
      "tree": "63ab2edf02cbf72e71f4ba3d6c751eaf956d4e91",
      "parents": [
        "65b6ecc03838fd263cf7fafdfa6cf13012b91d56"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Nov 14 19:03:42 2012 +0100"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Nov 16 14:52:51 2012 +0100"
      },
      "message": "uprobes: Use percpu_rw_semaphore to fix register/unregister vs dup_mmap() race\n\nThis was always racy, but 268720903f87e0b84b161626c4447b81671b5d18\n\"uprobes: Rework register_for_each_vma() to make it O(n)\" should be\nblamed anyway, it made everything worse and I didn\u0027t notice.\n\nregister/unregister call build_map_info() and then do install/remove\nbreakpoint for every mm which mmaps inode/offset. This can obviously\nrace with fork()-\u003edup_mmap() in between and we can miss the child.\n\nuprobe_register() could be easily fixed but unregister is much worse,\nthe new mm inherits \"int3\" from parent and there is no way to detect\nthis if uprobe goes away.\n\nSo this patch simply adds percpu_down_read/up_read around dup_mmap(),\nand percpu_down_write/up_write into register_for_each_vma().\n\nThis adds 2 new hooks into dup_mmap() but we can kill uprobe_dup_mmap()\nand fold it into uprobe_end_dup_mmap().\n\nReported-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\n"
    },
    {
      "commit": "5edee61edeaaebafe584f8fb7074c1ef4658596b",
      "tree": "23e6ee3581eb0009b3c2a2686c25fdba538219de",
      "parents": [
        "ddffeb8c4d0331609ef2581d84de4d763607bd37"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Oct 16 15:03:14 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Oct 16 15:03:14 2012 -0700"
      },
      "message": "cgroup: cgroup_subsys-\u003efork() should be called after the task is added to css_set\n\ncgroup core has a bug which violates a basic rule about event\nnotifications - when a new entity needs to be added, you add that to\nthe notification list first and then make the new entity conform to\nthe current state.  If done in the reverse order, an event happening\ninbetween will be lost.\n\ncgroup_subsys-\u003efork() is invoked way before the new task is added to\nthe css_set.  Currently, cgroup_freezer is the only user of -\u003efork()\nand uses it to make new tasks conform to the current state of the\nfreezer.  If FROZEN state is requested while fork is in progress\nbetween cgroup_fork_callbacks() and cgroup_post_fork(), the child\ncould escape freezing - the cgroup isn\u0027t frozen when -\u003efork() is\ncalled and the freezer couldn\u0027t see the new task on the css_set.\n\nThis patch moves cgroup_subsys-\u003efork() invocation to\ncgroup_post_fork() after the new task is added to the css_set.\ncgroup_fork_callbacks() is removed.\n\nBecause now a task may be migrated during cgroup_subsys-\u003efork(),\nfreezer_fork() is updated so that it adheres to the usual RCU locking\nand the rather pointless comment on why locking can be different there\nis removed (if it doesn\u0027t make anything simpler, why even bother?).\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "42859eea96ba6beabfb0369a1eeffa3c7d2bd9cb",
      "tree": "fa38aeda0d6e7a4c48a882b166b8643594a1ad50",
      "parents": [
        "f59b51fe3d3092c08d7d554ecb40db24011b2ebc",
        "f322220d6159455da2b5a8a596d802c8695fed30"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 10 12:02:25 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 10 12:02:25 2012 +0900"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull generic execve() changes from Al Viro:\n \"This introduces the generic kernel_thread() and kernel_execve()\n  functions, and switches x86, arm, alpha, um and s390 over to them.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: (26 commits)\n  s390: convert to generic kernel_execve()\n  s390: switch to generic kernel_thread()\n  s390: fold kernel_thread_helper() into ret_from_fork()\n  s390: fold execve_tail() into start_thread(), convert to generic sys_execve()\n  um: switch to generic kernel_thread()\n  x86, um/x86: switch to generic sys_execve and kernel_execve\n  x86: split ret_from_fork\n  alpha: introduce ret_from_kernel_execve(), switch to generic kernel_execve()\n  alpha: switch to generic kernel_thread()\n  alpha: switch to generic sys_execve()\n  arm: get rid of execve wrapper, switch to generic execve() implementation\n  arm: optimized current_pt_regs()\n  arm: introduce ret_from_kernel_execve(), switch to generic kernel_execve()\n  arm: split ret_from_fork, simplify kernel_thread() [based on patch by rmk]\n  generic sys_execve()\n  generic kernel_execve()\n  new helper: current_pt_regs()\n  preparation for generic kernel_thread()\n  um: kill thread-\u003eforking\n  um: let signal_delivered() do SIGTRAP on singlestepping into handler\n  ...\n"
    },
    {
      "commit": "9826a516ff77c5820e591211e4f3e58ff36f46be",
      "tree": "bdec1e2fe5ff95569795069bac73977faba17d57",
      "parents": [
        "9c079add0d0f45220f4bb37febf0621137ec2d38"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:40 2012 +0900"
      },
      "message": "mm: interval tree updates\n\nUpdate the generic interval tree code that was introduced in \"mm: replace\nvma prio_tree with an interval tree\".\n\nChanges:\n\n- fixed \u0027endpoing\u0027 typo noticed by Andrew Morton\n\n- replaced include/linux/interval_tree_tmpl.h, which was used as a\n  template (including it automatically defined the interval tree\n  functions) with include/linux/interval_tree_generic.h, which only\n  defines a preprocessor macro INTERVAL_TREE_DEFINE(), which itself\n  defines the interval tree functions when invoked. Now that is a very\n  long macro which is unfortunate, but it does make the usage sites\n  (lib/interval_tree.c and mm/interval_tree.c) a bit nicer than previously.\n\n- make use of RB_DECLARE_CALLBACKS() in the INTERVAL_TREE_DEFINE() macro,\n  instead of duplicating that code in the interval tree template.\n\n- replaced vma_interval_tree_add(), which was actually handling the\n  nonlinear and interval tree cases, with vma_interval_tree_insert_after()\n  which handles only the interval tree case and has an API that is more\n  consistent with the other interval tree handling functions.\n  The nonlinear case is now handled explicitly in kernel/fork.c dup_mmap().\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b2dbba8b6ac4df26f72eda1e5ea7bab9f950e08",
      "tree": "422ed8d7ac2fe45069f20cfba84a9a097bf444af",
      "parents": [
        "fff3fd8a1210a165252cd7cd01206da7a90d3a06"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:39 2012 +0900"
      },
      "message": "mm: replace vma prio_tree with an interval tree\n\nImplement an interval tree as a replacement for the VMA prio_tree.  The\nalgorithms are similar to lib/interval_tree.c; however that code can\u0027t be\ndirectly reused as the interval endpoints are not explicitly stored in the\nVMA.  So instead, the common algorithm is moved into a template and the\ndetails (node type, how to get interval endpoints from the node, etc) are\nfilled in using the C preprocessor.\n\nOnce the interval tree functions are available, using them as a\nreplacement to the VMA prio tree is a relatively simple, mechanical job.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01dc52ebdf472f77cca623ca693ca24cfc0f1bbe",
      "tree": "2d0f35f2aff418d52a84fb50974ad3bacf68d4bd",
      "parents": [
        "d5dc0ad928fb9e972001e552597fd0b794863f34"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "dave@gnu.org",
        "time": "Mon Oct 08 16:29:30 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:24 2012 +0900"
      },
      "message": "oom: remove deprecated oom_adj\n\nThe deprecated /proc/\u003cpid\u003e/oom_adj is scheduled for removal this month.\n\nSigned-off-by: Davidlohr Bueso \u003cdave@gnu.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9714acf8c439688884234dcac2bfc38bb607d38",
      "tree": "2e21c88f855a9f5168a143fa9948141140ff02a2",
      "parents": [
        "2dd8ad81e31d0d36a5d448329c646ab43eb17788"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:28:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:18 2012 +0900"
      },
      "message": "mm: kill vma flag VM_EXECUTABLE and mm-\u003enum_exe_file_vmas\n\nCurrently the kernel sets mm-\u003eexe_file during sys_execve() and then tracks\nnumber of vmas with VM_EXECUTABLE flag in mm-\u003enum_exe_file_vmas, as soon\nas this counter drops to zero kernel resets mm-\u003eexe_file to NULL.  Plus it\nresets mm-\u003eexe_file at last mmput() when mm-\u003emm_users drops to zero.\n\nVMA with VM_EXECUTABLE flag appears after mapping file with flag\nMAP_EXECUTABLE, such vmas can appears only at sys_execve() or after vma\nsplitting, because sys_mmap ignores this flag.  Usually binfmt module sets\nmm-\u003eexe_file and mmaps executable vmas with this file, they hold\nmm-\u003eexe_file while task is running.\n\ncomment from v2.6.25-6245-g925d1c4 (\"procfs task exe symlink\"),\nwhere all this stuff was introduced:\n\n\u003e The kernel implements readlink of /proc/pid/exe by getting the file from\n\u003e the first executable VMA.  Then the path to the file is reconstructed and\n\u003e reported as the result.\n\u003e\n\u003e Because of the VMA walk the code is slightly different on nommu systems.\n\u003e This patch avoids separate /proc/pid/exe code on nommu systems.  Instead of\n\u003e walking the VMAs to find the first executable file-backed VMA we store a\n\u003e reference to the exec\u0027d file in the mm_struct.\n\u003e\n\u003e That reference would prevent the filesystem holding the executable file\n\u003e from being unmounted even after unmapping the VMAs.  So we track the number\n\u003e of VM_EXECUTABLE VMAs and drop the new reference when the last one is\n\u003e unmapped.  This avoids pinning the mounted filesystem.\n\nexe_file\u0027s vma accounting is hooked into every file mmap/unmmap and vma\nsplit/merge just to fix some hypothetical pinning fs from umounting by mm,\nwhich already unmapped all its executable files, but still alive.\n\nSeems like currently nobody depends on this behaviour.  We can try to\nremove this logic and keep mm-\u003eexe_file until final mmput().\n\nmm-\u003eexe_file is still protected with mm-\u003emmap_sem, because we want to\nchange it via new sys_prctl(PR_SET_MM_EXE_FILE).  Also via this syscall\ntask can change its mm-\u003eexe_file and unpin mountpoint explicitly.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2dd8ad81e31d0d36a5d448329c646ab43eb17788",
      "tree": "cd358be45ed8067673edac7f1db6b6a42a96d9db",
      "parents": [
        "0b173bc4daa8f8ec03a85abf5e47b23502ff80af"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:28:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:18 2012 +0900"
      },
      "message": "mm: use mm-\u003eexe_file instead of first VM_EXECUTABLE vma-\u003evm_file\n\nSome security modules and oprofile still uses VM_EXECUTABLE for retrieving\na task\u0027s executable file.  After this patch they will use mm-\u003eexe_file\ndirectly.  mm-\u003eexe_file is protected with mm-\u003emmap_sem, so locking stays\nthe same.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\t\t\t[arch/tile]\nAcked-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\t[tomoyo]\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nAcked-by: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aecdc33e111b2c447b622e287c6003726daa1426",
      "tree": "3e7657eae4b785e1a1fb5dfb225dbae0b2f0cfc6",
      "parents": [
        "a20acf99f75e49271381d65db097c9763060a1e8",
        "a3a6cab5ea10cca64d036851fe0d932448f2fe4f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 13:38:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 13:38:27 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next\n\nPull networking changes from David Miller:\n\n 1) GRE now works over ipv6, from Dmitry Kozlov.\n\n 2) Make SCTP more network namespace aware, from Eric Biederman.\n\n 3) TEAM driver now works with non-ethernet devices, from Jiri Pirko.\n\n 4) Make openvswitch network namespace aware, from Pravin B Shelar.\n\n 5) IPV6 NAT implementation, from Patrick McHardy.\n\n 6) Server side support for TCP Fast Open, from Jerry Chu and others.\n\n 7) Packet BPF filter supports MOD and XOR, from Eric Dumazet and Daniel\n    Borkmann.\n\n 8) Increate the loopback default MTU to 64K, from Eric Dumazet.\n\n 9) Use a per-task rather than per-socket page fragment allocator for\n    outgoing networking traffic.  This benefits processes that have very\n    many mostly idle sockets, which is quite common.\n\n    From Eric Dumazet.\n\n10) Use up to 32K for page fragment allocations, with fallbacks to\n    smaller sizes when higher order page allocations fail.  Benefits are\n    a) less segments for driver to process b) less calls to page\n    allocator c) less waste of space.\n\n    From Eric Dumazet.\n\n11) Allow GRO to be used on GRE tunnels, from Eric Dumazet.\n\n12) VXLAN device driver, one way to handle VLAN issues such as the\n    limitation of 4096 VLAN IDs yet still have some level of isolation.\n    From Stephen Hemminger.\n\n13) As usual there is a large boatload of driver changes, with the scale\n    perhaps tilted towards the wireless side this time around.\n\nFix up various fairly trivial conflicts, mostly caused by the user\nnamespace changes.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1012 commits)\n  hyperv: Add buffer for extended info after the RNDIS response message.\n  hyperv: Report actual status in receive completion packet\n  hyperv: Remove extra allocated space for recv_pkt_list elements\n  hyperv: Fix page buffer handling in rndis_filter_send_request()\n  hyperv: Fix the missing return value in rndis_filter_set_packet_filter()\n  hyperv: Fix the max_xfer_size in RNDIS initialization\n  vxlan: put UDP socket in correct namespace\n  vxlan: Depend on CONFIG_INET\n  sfc: Fix the reported priorities of different filter types\n  sfc: Remove EFX_FILTER_FLAG_RX_OVERRIDE_IP\n  sfc: Fix loopback self-test with separate_tx_channels\u003d1\n  sfc: Fix MCDI structure field lookup\n  sfc: Add parentheses around use of bitfield macro arguments\n  sfc: Fix null function pointer in efx_sriov_channel_type\n  vxlan: virtual extensible lan\n  igmp: export symbol ip_mc_leave_group\n  netlink: add attributes to fdb interface\n  tg3: unconditionally select HWMON support when tg3 is enabled.\n  Revert \"net: ti cpsw ethernet: allow reading phy interface mode from DT\"\n  gre: fix sparse warning\n  ...\n"
    },
    {
      "commit": "0b981cb94bc63a2d0e5eccccdca75fe57643ffce",
      "tree": "966ad6e6807fd1041d9962c9904e032a5ab07a65",
      "parents": [
        "4cba3335826cbb36a218c3f5a1387e2c7c7ca9aa",
        "fdf9c356502ae02238efcdf90cefd7b473a63fd4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 10:43:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 01 10:43:39 2012 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler changes from Ingo Molnar:\n \"Continued quest to clean up and enhance the cputime code by Frederic\n  Weisbecker, in preparation for future tickless kernel features.\n\n  Other than that, smallish changes.\"\n\nFix up trivial conflicts due to additions next to each other in arch/{x86/}Kconfig\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)\n  cputime: Make finegrained irqtime accounting generally available\n  cputime: Gather time/stats accounting config options into a single menu\n  ia64: Reuse system and user vtime accounting functions on task switch\n  ia64: Consolidate user vtime accounting\n  vtime: Consolidate system/idle context detection\n  cputime: Use a proper subsystem naming for vtime related APIs\n  sched: cpu_power: enable ARCH_POWER\n  sched/nohz: Clean up select_nohz_load_balancer()\n  sched: Fix load avg vs. cpu-hotplug\n  sched: Remove __ARCH_WANT_INTERRUPTS_ON_CTXSW\n  sched: Fix nohz_idle_balance()\n  sched: Remove useless code in yield_to()\n  sched: Add time unit suffix to sched sysctl knobs\n  sched/debug: Limit sd-\u003e*_idx range on sysctl\n  sched: Remove AFFINE_WAKEUPS feature flag\n  s390: Remove leftover account_tick_vtime() header\n  cputime: Consolidate vtime handling on context switch\n  sched: Move cputime code to its own file\n  cputime: Generalize CONFIG_VIRT_CPU_ACCOUNTING\n  tile: Remove SD_PREFER_LOCAL leftover\n  ...\n"
    },
    {
      "commit": "2aa3a7f8660355c3dddead17e224545c1a3d5a5f",
      "tree": "d106fcaeb6b66e09591cf8ec28c836be93f4d837",
      "parents": [
        "a4d94ff8aa864c05b33c2de1f8c5d0176d7a4b63"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Sep 21 19:55:31 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Sep 30 13:35:55 2012 -0400"
      },
      "message": "preparation for generic kernel_thread()\n\nLet architectures select GENERIC_KERNEL_THREAD and have their copy_thread()\ntreat NULL regs as \"it came from kernel_thread(), sp argument contains\nthe function new thread will be calling and stack_size - the argument for\nthat function\".  Switching the architectures begins shortly...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5640f7685831e088fe6c2e1f863a6805962f8e81",
      "tree": "fb7660173338a45c27d610eb59ba20cf5c2b91b8",
      "parents": [
        "b98b8babd6e3370fadb7c6eaacb00eb2f6344a6c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sun Sep 23 23:04:42 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 24 16:31:37 2012 -0400"
      },
      "message": "net: use a per task frag allocator\n\nWe currently use a per socket order-0 page cache for tcp_sendmsg()\noperations.\n\nThis page is used to build fragments for skbs.\n\nIts done to increase probability of coalescing small write() into\nsingle segments in skbs still in write queue (not yet sent)\n\nBut it wastes a lot of memory for applications handling many mostly\nidle sockets, since each socket holds one page in sk-\u003esk_sndmsg_page\n\nIts also quite inefficient to build TSO 64KB packets, because we need\nabout 16 pages per skb on arches where PAGE_SIZE \u003d 4096, so we hit\npage allocator more than wanted.\n\nThis patch adds a per task frag allocator and uses bigger pages,\nif available. An automatic fallback is done in case of memory pressure.\n\n(up to 32768 bytes per frag, thats order-3 pages on x86)\n\nThis increases TCP stream performance by 20% on loopback device,\nbut also benefits on other network devices, since 8x less frags are\nmapped on transmit and unmapped on tx completion. Alexander Duyck\nmentioned a probable performance win on systems with IOMMU enabled.\n\nIts possible some SG enabled hardware cant cope with bigger fragments,\nbut their ndo_start_xmit() should already handle this, splitting a\nfragment in sub fragments, since some arches have PAGE_SIZE\u003d65536\n\nSuccessfully tested on various ethernet devices.\n(ixgbe, igb, bnx2x, tg3, mellanox mlx4)\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nCc: Vijay Subramanian \u003csubramanian.vijay@gmail.com\u003e\nCc: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nTested-by: Vijay Subramanian \u003csubramanian.vijay@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f3e947867478af9a12b9956bcd000ac7613a8a95",
      "tree": "63fabb89439447e0f72c465e8b8d0852e9deff08",
      "parents": [
        "5ed4f1d96deee82ee92cd1ac1e0108c27e80e9b0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 12 11:22:00 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Sep 13 16:52:04 2012 +0200"
      },
      "message": "sched: Remove __ARCH_WANT_INTERRUPTS_ON_CTXSW\n\nNow that the last architecture to use this has stopped doing so (ARM,\nthanks Catalin!) we can remove this complexity from the scheduler\ncore.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nLink: http://lkml.kernel.org/n/tip-g9p2a1w81xxbrze25v9zpzbf@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "61559a8165da2b6bab7621ac36379c6280efacb6",
      "tree": "22d885fda72ffadbaa735ceeeabd266177d66eab",
      "parents": [
        "f8ac4ec9c064b330dcc49e03c450fe74298c4622"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Aug 08 17:17:46 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Aug 28 18:21:19 2012 +0200"
      },
      "message": "uprobes: Fold uprobe_reset_state() into uprobe_dup_mmap()\n\nNow that we have uprobe_dup_mmap() we can fold uprobe_reset_state()\ninto the new hook and remove it. mmput()-\u003euprobe_clear_state() can\u0027t\nbe called before dup_mmap().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f8ac4ec9c064b330dcc49e03c450fe74298c4622",
      "tree": "62d53120d0289719438d27de5f868c36e136ed28",
      "parents": [
        "78f7411668aa0b2006d331f6a288416dd91b8e5d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Aug 08 17:11:42 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Aug 28 18:21:18 2012 +0200"
      },
      "message": "uprobes: Introduce MMF_HAS_UPROBES\n\nAdd the new MMF_HAS_UPROBES flag. It is set by install_breakpoint()\nand it is copied by dup_mmap(), uprobe_pre_sstep_notifier() checks\nit to avoid the slow path if the task was never probed. Perhaps it\nmakes sense to check it in valid_vma(is_register \u003d\u003e false) as well.\n\nThis needs the new dup_mmap()-\u003euprobe_dup_mmap() hook. We can\u0027t use\nuprobe_reset_state() or put MMF_HAS_UPROBES into MMF_INIT_MASK, we\nneed oldmm-\u003emmap_sem to avoid the race with uprobe_register() or\nmmap() from another thread.\n\nCurrently we never clear this bit, it can be false-positive after\nuprobe_unregister() or uprobe_munmap() or if dup_mmap() hits the\nprobed VM_DONTCOPY vma. But this is fine correctness-wise and has\nno effect unless the task hits the non-uprobe breakpoint.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f1a45d023193f7d8e55e384090b645d609325393",
      "tree": "7f901f3dbd23a7602bf3d4bf774862a3ee5b7640",
      "parents": [
        "647c42dfd40fec032a4c8525a755160f0765921f"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Aug 06 14:13:23 2012 +0200"
      },
      "committer": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Aug 28 18:21:17 2012 +0200"
      },
      "message": "uprobes: Kill dup_mmap()-\u003euprobe_mmap(), simplify uprobe_mmap/munmap\n\n1. Kill dup_mmap()-\u003euprobe_mmap(), it was only needed to calculate\n   new_mm-\u003euprobes_state.count removed by the previous patch.\n\n   If the forking process has a pending uprobe (int3) in vma, it will\n   be copied by copy_page_range(), note that it checks vma-\u003eanon_vma\n   so \"Don\u0027t copy ptes\" is not possible after install_breakpoint()\n   which does anon_vma_prepare().\n\n2. Remove is_swbp_at_addr() and \"int count\" in uprobe_mmap(). Again,\n   this was needed for uprobes_state.count.\n\n   As a side effect this fixes the bug pointed out by Srikar,\n   this code lacked the necessary put_uprobe().\n\n3. uprobe_munmap() becomes a nop after the previous patch. Remove the\n   meaningless code but do not remove the helper, we will need it.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "c7a3a88c938fbe3d70c2278e082b80eb830d1c58",
      "tree": "e25070dc5141c2614fbcfaae543de4237418a623",
      "parents": [
        "9160338de92c0305329be5163a76f849806e83de"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Aug 19 19:10:42 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Tue Aug 21 11:48:12 2012 +0200"
      },
      "message": "uprobes: Fix mmap_region()\u0027s mm-\u003emm_rb corruption if uprobe_mmap() fails\n\nThis patch fixes:\n\n  https://bugzilla.redhat.com/show_bug.cgi?id\u003d843640\n\nIf mmap_region()-\u003euprobe_mmap() fails, unmap_and_free_vma path\ndoes unmap_region() but does not remove the soon-to-be-freed vma\nfrom rb tree. Actually there are more problems but this is how\nWilliam noticed this bug.\n\nPerhaps we could do do_munmap() + return in this case, but in\nfact it is simply wrong to abort if uprobe_mmap() fails. Until\nat least we move the !UPROBE_COPY_INSN code from\ninstall_breakpoint() to uprobe_register().\n\nFor example, uprobe_mmap()-\u003einstall_breakpoint() can fail if the\nprobed insn is not supported (remember, uprobe_register()\nsucceeds if nobody mmaps inode/offset), mmap() should not fail\nin this case.\n\ndup_mmap()-\u003euprobe_mmap() is wrong too by the same reason,\nfork() can race with uprobe_register() and fail for no reason if\nit wins the race and does install_breakpoint() first.\n\nAnd, if nothing else, both mmap_region() and dup_mmap() return\nsuccess if uprobe_mmap() fails. Change them to ignore the error\ncode from uprobe_mmap().\n\nReported-and-tested-by: William Cohen \u003cwcohen@redhat.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e # v3.5\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: William Cohen \u003cwcohen@redhat.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20120819171042.GB26957@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "c255a458055e459f65eb7b7f51dc5dbdd0caf1d8",
      "tree": "b143b1914eeb6f27f53e30f9f0275d0f1ca5480b",
      "parents": [
        "80934513b230bfcf70265f2ef0fdae89fb391633"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Jul 31 16:43:02 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:43 2012 -0700"
      },
      "message": "memcg: rename config variables\n\nSanity:\n\nCONFIG_CGROUP_MEM_RES_CTLR -\u003e CONFIG_MEMCG\nCONFIG_CGROUP_MEM_RES_CTLR_SWAP -\u003e CONFIG_MEMCG_SWAP\nCONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED -\u003e CONFIG_MEMCG_SWAP_ENABLED\nCONFIG_CGROUP_MEM_RES_CTLR_KMEM -\u003e CONFIG_MEMCG_KMEM\n\n[mhocko@suse.cz: fix missed bits]\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "44de9d0cad41f2c51ef26916842be046b582dcc9",
      "tree": "a9ce576f28e5038e9e3ae2e360cadf176dc74898",
      "parents": [
        "df858fa8276f85106f2f5c3cd49c1fa524058070"
      ],
      "author": {
        "name": "Huang Shijie",
        "email": "shijie8@gmail.com",
        "time": "Tue Jul 31 16:41:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:39 2012 -0700"
      },
      "message": "mm: account the total_vm in the vm_stat_account()\n\nvm_stat_account() accounts the shared_vm, stack_vm and reserved_vm now.\nBut we can also account for total_vm in the vm_stat_account() which makes\nthe code tidy.\n\nEven for mprotect_fixup(), we can get the right result in the end.\n\nSigned-off-by: Huang Shijie \u003cshijie8@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f19b9f74b7ea3b21ddcee55d852a6488239608a4",
      "tree": "d57515cb110bc8b30043e1ab67c962ab78898e2f",
      "parents": [
        "87bec58a52652e2eb2a575692a40f9466c7bd31b"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Jul 30 14:42:33 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:20 2012 -0700"
      },
      "message": "fork: fix error handling in dup_task()\n\nThe function dup_task() may fail at the following function calls in the\nfollowing order.\n\n0) alloc_task_struct_node()\n1) alloc_thread_info_node()\n2) arch_dup_task_struct()\n\nError by 0) is not a matter, it can just return.  But error by 1) requires\nreleasing task_struct allocated by 0) before it returns.  Likewise, error\nby 2) requires releasing task_struct and thread_info allocated by 0) and\n1).\n\nThe existing error handling calls free_task_struct() and\nfree_thread_info() which do not only release task_struct and thread_info,\nbut also call architecture specific arch_release_task_struct() and\narch_release_thread_info().\n\nThe problem is that task_struct and thread_info are not fully initialized\nyet at this point, but arch_release_task_struct() and\narch_release_thread_info() are called with them.\n\nFor example, x86 defines its own arch_release_task_struct() that releases\na task_xstate.  If alloc_thread_info_node() fails in dup_task(),\narch_release_task_struct() is called with task_struct which is just\nallocated and filled with garbage in this error handling.\n\nThis actually happened with tools/testing/fault-injection/failcmd.sh\n\n\t# env FAILCMD_TYPE\u003dfail_page_alloc \\\n\t\t./tools/testing/fault-injection/failcmd.sh --times\u003d100 \\\n\t\t--min-order\u003d0 --ignore-gfp-wait\u003d0 \\\n\t\t-- make -C tools/testing/selftests/ run_tests\n\nIn order to fix this issue, make free_{task_struct,thread_info}() not to\ncall arch_release_{task_struct,thread_info}() and call\narch_release_{task_struct,thread_info}() implicitly where needed.\n\nDefault arch_release_task_struct() and arch_release_thread_info() are\ndefined as empty by default.  So this change only affects the\narchitectures which implement their own arch_release_task_struct() or\narch_release_thread_info() as listed below.\n\narch_release_task_struct(): x86, sh\narch_release_thread_info(): mn10300, tile\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Koichi Yasutake \u003cyasutake.koichi@jp.panasonic.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Salman Qazi \u003csqazi@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "87bec58a52652e2eb2a575692a40f9466c7bd31b",
      "tree": "bd7d6408b61ee2c1ad6df9f0b44277fb08e75034",
      "parents": [
        "b2412b7fa7a3816fa8633dc2ff19f1a90aabe423"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Jul 30 14:42:31 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:20 2012 -0700"
      },
      "message": "revert \"sched: Fix fork() error path to not crash\"\n\nTo make way for \"fork: fix error handling in dup_task()\", which fixes the\nerrors more completely.\n\nCc: Salman Qazi \u003csqazi@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b2412b7fa7a3816fa8633dc2ff19f1a90aabe423",
      "tree": "5059c916b993726b3b208859f35c8b59761f2656",
      "parents": [
        "bc452b4b65bd589083a7a7ba4f14f85dfc8454fa"
      ],
      "author": {
        "name": "Huang Shijie",
        "email": "shijie8@gmail.com",
        "time": "Mon Jul 30 14:42:30 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:20 2012 -0700"
      },
      "message": "fork: use vma_pages() to simplify the code\n\nThe current code can be replaced by vma_pages().  So use it to simplify\nthe code.\n\n[akpm@linux-foundation.org: initialise `len\u0027 at its definition site]\nSigned-off-by: Huang Shijie \u003cshijie8@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a66d2c8f7ec1284206ca7c14569e2a607583f1e3",
      "tree": "08cf68bcef3559b370843cab8191e5cc0f740bde",
      "parents": [
        "a6be1fcbc57f95bb47ef3c8e4ee3d83731b8f21e",
        "8cae6f7158ec1fa44c8a04a43db7d8020ec60437"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 23 12:27:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 23 12:27:27 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull the big VFS changes from Al Viro:\n \"This one is *big* and changes quite a few things around VFS.  What\u0027s in there:\n\n   - the first of two really major architecture changes - death to open\n     intents.\n\n     The former is finally there; it was very long in making, but with\n     Miklos getting through really hard and messy final push in\n     fs/namei.c, we finally have it.  Unlike his variant, this one\n     doesn\u0027t introduce struct opendata; what we have instead is\n     -\u003eatomic_open() taking preallocated struct file * and passing\n     everything via its fields.\n\n     Instead of returning struct file *, it returns -E...  on error, 0\n     on success and 1 in \"deal with it yourself\" case (e.g.  symlink\n     found on server, etc.).\n\n     See comments before fs/namei.c:atomic_open().  That made a lot of\n     goodies finally possible and quite a few are in that pile:\n     -\u003elookup(), -\u003ed_revalidate() and -\u003ecreate() do not get struct\n     nameidata * anymore; -\u003elookup() and -\u003ed_revalidate() get lookup\n     flags instead, -\u003ecreate() gets \"do we want it exclusive\" flag.\n\n     With the introduction of new helper (kern_path_locked()) we are rid\n     of all struct nameidata instances outside of fs/namei.c; it\u0027s still\n     visible in namei.h, but not for long.  Come the next cycle,\n     declaration will move either to fs/internal.h or to fs/namei.c\n     itself.  [me, miklos, hch]\n\n   - The second major change: behaviour of final fput().  Now we have\n     __fput() done without any locks held by caller *and* not from deep\n     in call stack.\n\n     That obviously lifts a lot of constraints on the locking in there.\n     Moreover, it\u0027s legal now to call fput() from atomic contexts (which\n     has immediately simplified life for aio.c).  We also don\u0027t need\n     anti-recursion logics in __scm_destroy() anymore.\n\n     There is a price, though - the damn thing has become partially\n     asynchronous.  For fput() from normal process we are guaranteed\n     that pending __fput() will be done before the caller returns to\n     userland, exits or gets stopped for ptrace.\n\n     For kernel threads and atomic contexts it\u0027s done via\n     schedule_work(), so theoretically we might need a way to make sure\n     it\u0027s finished; so far only one such place had been found, but there\n     might be more.\n\n     There\u0027s flush_delayed_fput() (do all pending __fput()) and there\u0027s\n     __fput_sync() (fput() analog doing __fput() immediately).  I hope\n     we won\u0027t need them often; see warnings in fs/file_table.c for\n     details.  [me, based on task_work series from Oleg merged last\n     cycle]\n\n   - sync series from Jan\n\n   - large part of \"death to sync_supers()\" work from Artem; the only\n     bits missing here are exofs and ext4 ones.  As far as I understand,\n     those are going via the exofs and ext4 trees resp.; once they are\n     in, we can put -\u003ewrite_super() to the rest, along with the thread\n     calling it.\n\n   - preparatory bits from unionmount series (from dhowells).\n\n   - assorted cleanups and fixes all over the place, as usual.\n\n  This is not the last pile for this cycle; there\u0027s at least jlayton\u0027s\n  ESTALE work and fsfreeze series (the latter - in dire need of fixes,\n  so I\u0027m not sure it\u0027ll make the cut this cycle).  I\u0027ll probably throw\n  symlink/hardlink restrictions stuff from Kees into the next pile, too.\n  Plus there\u0027s a lot of misc patches I hadn\u0027t thrown into that one -\n  it\u0027s large enough as it is...\"\n\n* \u0027for-linus-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (127 commits)\n  ext4: switch EXT4_IOC_RESIZE_FS to mnt_want_write_file()\n  btrfs: switch btrfs_ioctl_balance() to mnt_want_write_file()\n  switch dentry_open() to struct path, make it grab references itself\n  spufs: shift dget/mntget towards dentry_open()\n  zoran: don\u0027t bother with struct file * in zoran_map\n  ecryptfs: don\u0027t reinvent the wheels, please - use struct completion\n  don\u0027t expose I_NEW inodes via dentry-\u003ed_inode\n  tidy up namei.c a bit\n  unobfuscate follow_up() a bit\n  ext3: pass custom EOF to generic_file_llseek_size()\n  ext4: use core vfs llseek code for dir seeks\n  vfs: allow custom EOF in generic_file_llseek code\n  vfs: Avoid unnecessary WB_SYNC_NONE writeback during sys_sync and reorder sync passes\n  vfs: Remove unnecessary flushing of block devices\n  vfs: Make sys_sync writeout also block device inodes\n  vfs: Create function for iterating over block devices\n  vfs: Reorder operations during sys_sync\n  quota: Move quota syncing to -\u003esync_fs method\n  quota: Split dquot_quota_sync() to writeback and cache flushing part\n  vfs: Move noop_backing_dev_info check from sync into writeback\n  ...\n"
    },
    {
      "commit": "158e1645e07f3e9f7e4962d7a0997f5c3b98311b",
      "tree": "09d695b3a0410afe15f7fd6006bc6c1effee151d",
      "parents": [
        "41f9d29f09ca0b22c3631e8a39676e74cda9bcc0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 27 09:24:13 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 22 23:57:55 2012 +0400"
      },
      "message": "trim task_work: get rid of hlist\n\nlayout based on Oleg\u0027s suggestion; single-linked list,\ntask-\u003etask_works points to the last element, forward pointer\nfrom said last element points to head.  I\u0027d still prefer\nmuch more regular scheme with two pointers in task_work,\nbut...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "164c33c6adee609b8b9062cce4c10f764d0dce13",
      "tree": "47ff40e1ae3d8206dd900e64d757ce16a3ee0774",
      "parents": [
        "9e85a6f9dc231f3ed3c1dc1b12217505d970142a"
      ],
      "author": {
        "name": "Salman Qazi",
        "email": "sqazi@google.com",
        "time": "Mon Jun 25 18:18:15 2012 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Thu Jul 05 20:57:32 2012 +0200"
      },
      "message": "sched: Fix fork() error path to not crash\n\nIn dup_task_struct(), if arch_dup_task_struct() fails, the clean up\ncode fails to clean up correctly.  That\u0027s because the clean up\ncode depends on unininitalized ti-\u003etask pointer.  We fix this\nby making sure that the task and thread_info know about each other\nbefore we attempt to take the error path.\n\nSigned-off-by: Salman Qazi \u003csqazi@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120626011815.11323.5533.stgit@dungbeetle.mtv.corp.google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "48d212a2eecaca2e1875925837ad27b2f43f48a3",
      "tree": "fbd83c7b15856971f6d7297e1d23dc862ba2989c",
      "parents": [
        "46edaedaf3842164281d0f86c41bc152f4b4d32e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 07 17:54:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 07 17:54:07 2012 -0700"
      },
      "message": "Revert \"mm: correctly synchronize rss-counters at exit/exec\"\n\nThis reverts commit 40af1bbdca47e5c8a2044039bb78ca8fd8b20f94.\n\nIt\u0027s horribly and utterly broken for at least the following reasons:\n\n - calling sync_mm_rss() from mmput() is fundamentally wrong, because\n   there\u0027s absolutely no reason to believe that the task that does the\n   mmput() always does it on its own VM.  Example: fork, ptrace, /proc -\n   you name it.\n\n - calling it *after* having done mmdrop() on it is doubly insane, since\n   the mm struct may well be gone now.\n\n - testing mm against NULL before you call it is insane too, since a\nNULL mm there would have caused oopses long before.\n\n.. and those are just the three bugs I found before I decided to give up\nlooking for me and revert it asap.  I should have caught it before I\neven took it, but I trusted Andrew too much.\n\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "40af1bbdca47e5c8a2044039bb78ca8fd8b20f94"
}
