)]}'
{
  "log": [
    {
      "commit": "ed5d2cac114202fe2978a9cbcab8f5032796d538",
      "tree": "aa9aaea1aa0945bd9159685d1b04897d105a90c9",
      "parents": [
        "f558b7e408026eb3c6afcd0e8fc1f7fe31195a6a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Feb 04 22:27:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:07 2008 -0800"
      },
      "message": "exec: rework the group exit and fix the race with kill\n\nAs Roland pointed out, we have the very old problem with exec.  de_thread()\nsets SIGNAL_GROUP_EXIT, kills other threads, changes -\u003egroup_leader and then\nclears signal-\u003eflags.  All signals (even fatal ones) sent in this window\n(which is not too small) will be lost.\n\nWith this patch exec doesn\u0027t abuse SIGNAL_GROUP_EXIT.  signal_group_exit(),\nthe new helper, should be used to detect exit_group() or exec() in progress.\nIt can have more users, but this patch does only strictly necessary changes.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nCc: Roland McGrath \u003croland@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": "06c93e875747f3020d997220b3e7c98083acc7c3",
      "tree": "daed1cf5919f4f8acdbcc0c668a3bfee45b14c92",
      "parents": [
        "ef08cce81d9be38063ec7796e36f2b32bdf82ff2"
      ],
      "author": {
        "name": "Pierre Peiffer",
        "email": "pierre.peiffer@bull.net",
        "time": "Sun Feb 03 16:22:12 2008 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Sun Feb 03 16:22:12 2008 +0200"
      },
      "message": "Remove one useless extern declaration\n\nThe file exit.c contains one useless extern declaration of sem_exit().\nMoreover, it refers to nothing.\n\nThis trivial patch removes it.\n\nSigned-off-by: Pierre Peiffer \u003cpierre.peiffer@bull.net\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n"
    },
    {
      "commit": "338077e54e17e656da470a84724b773816207316",
      "tree": "79194e34d4ca5a454bf996640fa78c1964b727cc",
      "parents": [
        "e1abb39c60971590b6580c0d3a12119dcbad9c50"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Thu Dec 06 11:09:35 2007 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Thu Dec 06 17:35:17 2007 -0500"
      },
      "message": "exit: Use task_is_*\n\nAlso restructure the loop in do_wait()\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "e6ceb32aa25fc33f21af84cc7a32fe289b3e860c",
      "tree": "6a7684a5ac0f841a0bb85ce3a679e5836bd0e2df",
      "parents": [
        "14816b1e2b0eb24ef41dbe37dcb558338e54a603"
      ],
      "author": {
        "name": "Scott James Remnant",
        "email": "scott@ubuntu.com",
        "time": "Wed Nov 28 16:22:07 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Nov 29 09:24:55 2007 -0800"
      },
      "message": "wait_task_stopped(): pass correct exit_code to wait_noreap_copyout()\n\nIn wait_task_stopped() exit_code already contains the right value for the\nsi_status member of siginfo, and this is simply set in the non WNOWAIT\ncase.\n\nIf you call waitid() with a stopped or traced process, you\u0027ll get the signal\nin siginfo.si_status as expected -- however if you call waitid(WNOWAIT) at the\nsame time, you\u0027ll get the signal \u003c\u003c 8 | 0x7f\n\nPass it unchanged to wait_noreap_copyout(); we would only need to shift it\nand add 0x7f if we were returning it in the user status field and that\nisn\u0027t used for any function that permits WNOWAIT.\n\nSigned-off-by: Scott James Remnant \u003cscott@ubuntu.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c895078355b6b6e05c60aa205892526dd3390f0a",
      "tree": "922a0b9204b0cfcd5c59762f4d02e167d587ccd2",
      "parents": [
        "c2319540cd7330fa9066e5b9b84d357a2c8631a2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Nov 28 16:21:24 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Nov 29 09:24:52 2007 -0800"
      },
      "message": "wait_task_stopped(): don\u0027t use task_pid_nr_ns() lockless\n\nwait_task_stopped(WNOWAIT) does task_pid_nr_ns() without tasklist/rcu lock,\nwe can read an already freed memory.  Use the cached pid_t value.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nLooks-good-to: Roland McGrath \u003croland@redhat.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3474224e6a01924be40a8255636ea5522c1023a",
      "tree": "e190dfea1792d364b93b0fbfe45019a0e8cdad09",
      "parents": [
        "99fee6d7e5748d96884667a4628118f7fc130ea0"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Tue Nov 13 22:11:50 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Nov 15 08:36:27 2007 -0800"
      },
      "message": "wait_task_stopped: Check p-\u003eexit_state instead of TASK_TRACED\n\nThe original meaning of the old test (p-\u003estate \u003e TASK_STOPPED) was\n\"not dead\", since it was before TASK_TRACED existed and before the\nstate/exit_state split.  It was a wrong correction in commit\n14bf01bb0599c89fc7f426d20353b76e12555308 to make this test for\nTASK_TRACED instead.  It should have been changed when TASK_TRACED\nwas introducted and again when exit_state was introduced.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: Kees Cook \u003ckees@ubuntu.com\u003e\nAcked-by: Scott James Remnant \u003cscott@ubuntu.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a39bc51691a0c8880b7d10fa7c2f034f3ba9a037",
      "tree": "6f74815a32b5344cbfc2b3eca6def411308c06fb",
      "parents": [
        "a24efe62dd165be7d03431cf936ae17d345fed69"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Thu Oct 18 23:41:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:56 2007 -0700"
      },
      "message": "Uninline fork.c/exit.c\n\nSave ~650 bytes here.\n\nadd/remove: 4/0 grow/shrink: 0/7 up/down: 430/-1088 (-658)\nfunction                                     old     new   delta\n__copy_fs_struct                               -     202    +202\n__put_fs_struct                                -     112    +112\n__exit_fs                                      -      58     +58\n__exit_files                                   -      58     +58\nexit_files                                    58       2     -56\nput_fs_struct                                112       5    -107\nexit_fs                                      161       2    -159\nsys_unshare                                  774     590    -184\ncopy_process                                4031    3840    -191\ndo_exit                                     1791    1597    -194\ncopy_fs_struct                               202       5    -197\n\nNo difference in lmbench lat_proc tests on 2-way Opteron 246.\nSmaaaal degradation on UP P4 (within errors).\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\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": "ba25f9dcc4ea6e30839fcab5a5516f2176d5bfed",
      "tree": "3123c03b25dd5c0cd24b6ab4fc16731217838157",
      "parents": [
        "9a2e70572e94e21e7ec4186702d045415422bda0"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:43 2007 -0700"
      },
      "message": "Use helpers to obtain task pid in printks\n\nThe task_struct-\u003epid member is going to be deprecated, so start\nusing the helpers (task_pid_nr/task_pid_vnr/task_pid_nr_ns) in\nthe kernel.\n\nThe first thing to start with is the pid, printed to dmesg - in\nthis case we may safely use task_pid_nr(). Besides, printks produce\nmore (much more) than a half of all the explicit pid usage.\n\n[akpm@linux-foundation.org: git-drm went and changed lots of stuff]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a2e70572e94e21e7ec4186702d045415422bda0",
      "tree": "a6cd54dc559cbf6840dac4077f507a961486e21b",
      "parents": [
        "270f722d4d5f94b02fd48eed47e57917ab00a858"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:43 2007 -0700"
      },
      "message": "Isolate the explicit usage of signal-\u003epgrp\n\nThe pgrp field is not used widely around the kernel so it is now marked as\ndeprecated with appropriate comment.\n\nThe initialization of INIT_SIGNALS is trimmed because\na) they are set to 0 automatically;\nb) gcc cannot properly initialize two anonymous (the second one\n   is the one with the session) unions. In this particular case\n   to make it compile we\u0027d have to add some field initialized\n   right before the .pgrp.\n\nThis is the same patch as the 1ec320afdc9552c92191d5f89fcd1ebe588334ca one\n(from Cedric), but for the pgrp field.\n\nSome progress report:\n\nWe have to deprecate the pid, tgid, session and pgrp fields on struct\ntask_struct and struct signal_struct.  The session and pgrp are already\ndeprecated.  The tgid value is close to being such - the worst known usage\nin in fs/locks.c and audit code.  The pid field deprecation is mainly\nblocked by numerous printk-s around the kernel that print the tsk-\u003epid to\nlog.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b488893a390edfe027bae7a46e9af8083e740668",
      "tree": "c469a7f99ad01005a73011c029eb5e5d15454559",
      "parents": [
        "3eb07c8c8adb6f0572baba844ba2d9e501654316"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "pid namespaces: changes to show virtual ids to user\n\nThis is the largest patch in the set. Make all (I hope) the places where\nthe pid is shown to or get from user operate on the virtual pids.\n\nThe idea is:\n - all in-kernel data structures must store either struct pid itself\n   or the pid\u0027s global nr, obtained with pid_nr() call;\n - when seeking the task from kernel code with the stored id one\n   should use find_task_by_pid() call that works with global pids;\n - when showing pid\u0027s numerical value to the user the virtual one\n   should be used, but however when one shows task\u0027s pid outside this\n   task\u0027s namespace the global one is to be used;\n - when getting the pid from userspace one need to consider this as\n   the virtual one and use appropriate task/pid-searching functions.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: nuther build fix]\n[akpm@linux-foundation.org: yet nuther build fix]\n[akpm@linux-foundation.org: remove unneeded casts]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3eb07c8c8adb6f0572baba844ba2d9e501654316",
      "tree": "5c3d527f6b003b316d41119320ebd5c589c8afd0",
      "parents": [
        "0fbc26a6cfab9f377e82e28225f2c0c6b4661e5c"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Thu Oct 18 23:40:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "pid namespaces: destroy pid namespace on init\u0027s death\n\nTerminate all processes in a namespace when the reaper of the namespace is\nexiting.  We do this by walking the pidmap of the namespace and sending\nSIGKILL to all processes.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60347f6716aa49831ac311e04d77ccdc50dc024a",
      "tree": "82e666fef22f43550da42ad368a61a5e9a59ef96",
      "parents": [
        "8bf9725c29f2589237dd696d06a204230add0ba3"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:38 2007 -0700"
      },
      "message": "pid namespaces: prepare proc_flust_task() to flush entries from multiple proc trees\n\nThe first part is trivial - we just make the proc_flush_task() to operate on\narbitrary vfsmount with arbitrary ids and pass the pid and global proc_mnt to\nit.\n\nThe other change is more tricky: I moved the proc_flush_task() call in\nrelease_task() higher to address the following problem.\n\nWhen flushing task from many proc trees we need to know the set of ids (not\njust one pid) to find the dentries\u0027 names to flush.  Thus we need to pass the\ntask\u0027s pid to proc_flush_task() as struct pid is the only object that can\nprovide all the pid numbers.  But after __exit_signal() task has detached all\nhis pids and this information is lost.\n\nThis creates a tiny gap for proc_pid_lookup() to bring some dentries back to\ntree and keep them in hash (since pids are still alive before __exit_signal())\ntill the next shrink, but since proc_flush_task() does not provide a 100%\nguarantee that the dentries will be flushed, this is OK to do so.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2e4a707269a409950c3f315010c20f9719c594e2",
      "tree": "d25109a6b36bdcb78382d379bdba4c4e83150389",
      "parents": [
        "762a24beed3f3ab93224bd447710e6c36fcf1968"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:38 2007 -0700"
      },
      "message": "pid namespaces: move exit_task_namespaces()\n\nMake task release its namespaces after it has reparented all his children to\nchild_reaper, but before it notifies its parent about its death.\n\nThe reason to release namespaces after reparenting is that when task exits it\nmay send a signal to its parent (SIGCHLD), but if the parent has already\nexited its namespaces there will be no way to decide what pid to dever to him\n- parent can be from different namespace.\n\nThe reason to release namespace before notifying the parent it that when task\nsends a SIGCHLD to parent it can call wait() on this taks and release it.  But\nreleasing the mnt namespace implies dropping of all the mounts in the mnt\nnamespace and NFS expects the task to have valid sighand pointer.\n\nThanks to Oleg for pointing out some races that can apear and helping with\npatches and fixes.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "762a24beed3f3ab93224bd447710e6c36fcf1968",
      "tree": "5753a796e11e53173194199292fdfcaae04efb47",
      "parents": [
        "d4c5e41f3f1b0c19448fcf2d259bdab1ede75e2e"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Thu Oct 18 23:40:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:38 2007 -0700"
      },
      "message": "pid namespaces: rework forget_original_parent()\n\nA pid namespace is a \"view\" of a particular set of tasks on the system.  They\nwork in a similar way to filesystem namespaces.  A file (or a process) can be\naccessed in multiple namespaces, but it may have a different name in each.  In\na filesystem, this name might be /etc/passwd in one namespace, but\n/chroot/etc/passwd in another.\n\nFor processes, a process may have pid 1234 in one namespace, but be pid 1 in\nanother.  This allows new pid namespaces to have basically arbitrary pids, and\nnot have to worry about what pids exist in other namespaces.  This is\nessential for checkpoint/restart where a restarted process\u0027s pid might collide\nwith an existing process on the system\u0027s pid.\n\nIn this particular implementation, pid namespaces have a parent-child\nrelationship, just like processes.  A process in a pid namespace may see all\nof the processes in the same namespace, as well as all of the processes in all\nof the namespaces which are children of its namespace.  Processes may not,\nhowever, see others which are in their parent\u0027s namespace, but not in their\nown.  The same goes for sibling namespaces.\n\nThe know issue to be solved in the nearest future is signal handling in the\nnamespace boundary.  That is, currently the namespace\u0027s init is treated like\nan ordinary task that can be killed from within an namespace.  Ideally, the\nsignal handling by the namespace\u0027s init should have two sides: when signaling\nthe init from its namespace, the init should look like a real init task, i.e.\nreceive only those signals, that is explicitly wants to; when signaling the\ninit from one of the parent namespaces, init should look like an ordinary\ntask, i.e.  receive any signal, only taking the general permissions into\naccount.\n\nThe pid namespace was developed by Pavel Emlyanov and Sukadev Bhattiprolu and\nwe eventually came to almost the same implementation, which differed in some\ndetails.  This set is based on Pavel\u0027s patches, but it includes comments and\npatches that from Sukadev.\n\nMany thanks to Oleg, who reviewed the patches, pointed out many BUGs and made\nvaluable advises on how to make this set cleaner.\n\nThis patch:\n\nWe have to call exit_task_namespaces() only after the exiting task has\nreparented all his children and is sure that no other threads will reparent\ntheirs for it.  Why this is needed is explained in appropriate patch.  This\none only reworks the forget_original_parent() so that after calling this a\ntask cannot be/become parent of any other task.\n\nWe check PF_EXITING instead of -\u003eexit_state while choosing the new parent.\nNote that tasklits_lock acts as a barrier, everyone who takes tasklist after\nus (when forget_original_parent() drops it) must see PF_EXITING.\n\nThe other changes are just cleanups.  They just move some code from\nexit_notify to forget_original_parent().  It is a bit silly to declare\nptrace_dead in exit_notify(), take tasklist, pass ptrace_dead to\nforget_original_parent(), unlock-lock-unlock tasklist, and then use\nptrace_dead.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d4c5e41f3f1b0c19448fcf2d259bdab1ede75e2e",
      "tree": "5a5ae3a1967c39f728b42e2fa0fc7cbcddcd2108",
      "parents": [
        "7b1915a989ea4d426d0fd98974ab80f30ef1d779"
      ],
      "author": {
        "name": "Daniel Walker",
        "email": "dwalker@mvista.com",
        "time": "Thu Oct 18 23:39:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:38 2007 -0700"
      },
      "message": "whitespace fixes: task exit handling\n\nSigned-off-by: Daniel Walker \u003cdwalker@mvista.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "03ff17979c58a0b63b0fe30a373f41b719731bd2",
      "tree": "c6369ebab7a3035b309de5f288d6e8fc149b3d69",
      "parents": [
        "d473012710b815741043942bc41945d444abab40"
      ],
      "author": {
        "name": "Matthias Kaehlcke",
        "email": "matthias.kaehlcke@gmail.com",
        "time": "Thu Oct 18 23:39:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:38 2007 -0700"
      },
      "message": "kernel/exit.c: Use list_for_each_entry(_safe) instead of list_for_each(_safe)\n\nkernel/exit.c: Convert list_for_each(_safe) to\nlist_for_each_entry(_safe) in forget_original_parent(), exit_notify()\nand do_wait()\n\nSigned-off-by: Matthias Kaehlcke \u003cmatthias.kaehlcke@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": "cf7b708c8d1d7a27736771bcf4c457b332b0f818",
      "tree": "10f80257b052313b283f18ddfe35145882e0b47f",
      "parents": [
        "a6f5e06378970a2687332c2d54046245fcff1e7e"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:39:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:37 2007 -0700"
      },
      "message": "Make access to task\u0027s nsproxy lighter\n\nWhen someone wants to deal with some other taks\u0027s namespaces it has to lock\nthe task and then to get the desired namespace if the one exists.  This is\nslow on read-only paths and may be impossible in some cases.\n\nE.g.  Oleg recently noticed a race between unshare() and the (sent for\nreview in cgroups) pid namespaces - when the task notifies the parent it\nhas to know the parent\u0027s namespace, but taking the task_lock() is\nimpossible there - the code is under write locked tasklist lock.\n\nOn the other hand switching the namespace on task (daemonize) and releasing\nthe namespace (after the last task exit) is rather rare operation and we\ncan sacrifice its speed to solve the issues above.\n\nThe access to other task namespaces is proposed to be performed\nlike this:\n\n     rcu_read_lock();\n     nsproxy \u003d task_nsproxy(tsk);\n     if (nsproxy !\u003d NULL) {\n             / *\n               * work with the namespaces here\n               * e.g. get the reference on one of them\n               * /\n     } / *\n         * NULL task_nsproxy() means that this task is\n         * almost dead (zombie)\n         * /\n     rcu_read_unlock();\n\nThis patch has passed the review by Eric and Oleg :) and,\nof course, tested.\n\n[clg@fr.ibm.com: fix unshare()]\n[ebiederm@xmission.com: Update get_net_ns_by_pid]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b460cbc581a53cc088ceba80608021dd49c63c43",
      "tree": "83c28d0adbc15f4157c77b40fa60c40a71cb8673",
      "parents": [
        "3743ca05ff464b8a9e345c08a6c9ce30485f9805"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Thu Oct 18 23:39:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:37 2007 -0700"
      },
      "message": "pid namespaces: define is_global_init() and is_container_init()\n\nis_init() is an ambiguous name for the pid\u003d\u003d1 check.  Split it into\nis_global_init() and is_container_init().\n\nA cgroup init has it\u0027s tsk-\u003epid \u003d\u003d 1.\n\nA global init also has it\u0027s tsk-\u003epid \u003d\u003d 1 and it\u0027s active pid namespace\nis the init_pid_ns.  But rather than check the active pid namespace,\ncompare the task structure with \u0027init_pid_ns.child_reaper\u0027, which is\ninitialized during boot to the /sbin/init process and never changes.\n\nChangelog:\n\n\t2.6.22-rc4-mm2-pidns1:\n\t- Use \u0027init_pid_ns.child_reaper\u0027 to determine if a given task is the\n\t  global init (/sbin/init) process. This would improve performance\n\t  and remove dependence on the task_pid().\n\n\t2.6.21-mm2-pidns2:\n\n\t- [Sukadev Bhattiprolu] Changed is_container_init() calls in {powerpc,\n\t  ppc,avr32}/traps.c for the _exception() call to is_global_init().\n\t  This way, we kill only the cgroup if the cgroup\u0027s init has a\n\t  bug rather than force a kernel panic.\n\n[akpm@linux-foundation.org: fix comment]\n[sukadev@us.ibm.com: Use is_global_init() in arch/m32r/mm/fault.c]\n[bunk@stusta.de: kernel/pid.c: remove unused exports]\n[sukadev@us.ibm.com: Fix capability.c to work with threaded init]\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nAcked-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Herbert Poetzel \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88f21d818255bc61c002478d21caf52f8a9b8def",
      "tree": "de16e38862622b3d295f7850cdb006922307fb8d",
      "parents": [
        "2894d650cd9715d00ca196c711265819ef6ebd2d"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Thu Oct 18 23:39:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:37 2007 -0700"
      },
      "message": "pid namespaces: rename child_reaper() function\n\nRename the child_reaper() function to task_child_reaper() to be similar to\nother task_* functions and to distinguish the function from \u0027struct\npid_namspace.child_reaper\u0027.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Herbert Poetzel \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a47afb0f9d794d525a372c8d69902147cc88222a",
      "tree": "7bd67280e2edc1c3b1803d4a93bee794088e9342",
      "parents": [
        "858d72ead4864da0fb0b89b919524125ce998e27"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:39:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:37 2007 -0700"
      },
      "message": "pid namespaces: round up the API\n\nThe set of functions process_session, task_session, process_group and\ntask_pgrp is confusing, as the names can be mixed with each other when looking\nat the code for a long time.\n\nThe proposals are to\n* equip the functions that return the integer with _nr suffix to\n  represent that fact,\n* and to make all functions work with task (not process) by making\n  the common prefix of the same name.\n\nFor monotony the routines signal_session() and set_signal_session() are\nreplaced with task_session_nr() and set_task_session(), especially since they\nare only used with the explicit task-\u003esignal dereference.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nAcked-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8793d854edbc2774943a4b0de3304dc73991159a",
      "tree": "380b3403a0fedfcce61d9af5af1ffbcc71017abf",
      "parents": [
        "81a6a5cdd2c5cd70874b88afe524ab09e9e869af"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: make cpusets a client of cgroups\n\nRemove the filesystem support logic from the cpusets system and makes cpusets\na cgroup subsystem\n\nThe \"cpuset\" filesystem becomes a dummy filesystem; attempts to mount it get\npassed through to the cgroup filesystem with the appropriate options to\nemulate the old cpuset filesystem behaviour.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b4f48b6363c81ca743ef46943ef23fd72e60f679",
      "tree": "40437b78e2d7a7d9d71e7bd63bc96e1ad02daa94",
      "parents": [
        "355e0c48b757b7fcc79ccb98fda8105ed37a1598"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: add fork()/exit() hooks\n\nThis adds the necessary hooks to the fork() and exit() paths to ensure\nthat new children inherit their parent\u0027s cgroup assignments, and that\nexiting processes release reference counts on their cgroups.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42b2dd0a02c512cf59c96f5c227bf54bfe5bbf08",
      "tree": "f9e4a572804897772d97e2db1ab0d2adcd28840c",
      "parents": [
        "bcbba6c10ef6b14b0542d7ed7380e95168175818"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Tue Oct 16 23:27:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:55 2007 -0700"
      },
      "message": "Shrink task_struct if CONFIG_FUTEX\u003dn\n\nrobust_list, compat_robust_list, pi_state_list, pi_state_cache are\nreally used if futexes are on.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nAcked-by: 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": "6db840fa7887980ef68a649640d506fe069eef0c",
      "tree": "6248c1e65b572f1c2b14c46848e5a18df003f60e",
      "parents": [
        "356d6d5058c8082b9e811838ab2fa27825c947e4"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Oct 16 23:27:23 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:54 2007 -0700"
      },
      "message": "exec: RT sub-thread can livelock and monopolize CPU on exec\n\nde_thread() yields waiting for -\u003egroup_leader to be a zombie. This deadlocks\nif an rt-prio execer shares the same cpu with -\u003egroup_leader. Change the code\nto use -\u003egroup_exit_task/notify_count mechanics.\n\nThis patch certainly uglifies the code, perhaps someone can suggest something\nbetter.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@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": "715015e8da37c4d13e234def054bcbea116297e9",
      "tree": "3c3f2cd1d516d13d50ad33519dfe98a75243eb0d",
      "parents": [
        "18442cf28af81378cf8996d264b368bba47cf846"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Oct 16 23:27:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:52 2007 -0700"
      },
      "message": "wait_task_stopped/continued: remove unneeded p-\u003esignal !\u003d NULL check\n\nThe child was found on -\u003echildren list under tasklist_lock, it must have a\nvalid -\u003esignal. __exit_signal() both removes the task from parent-\u003echildren\nand clears -\u003esignal \"atomically\" under write_lock(tasklist).\n\nRemove unneeded checks.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Roland McGrath \u003croland@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": "442a10cf9e1c350b4de4dd6f22c72618a0b13d7f",
      "tree": "13ab9fc1bd97be616511425d422e0c9188fbf5f3",
      "parents": [
        "ebca4cda1133775111e8b09f7124a7e5e391926d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Oct 16 23:26:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:51 2007 -0700"
      },
      "message": "wait_task_zombie: don\u0027t fight with non-existing race with a dying ptracee\n\nThe \"p-\u003eexit_signal \u003d\u003d -1 \u0026\u0026 p-\u003eptrace \u003d\u003d 0\" check and the comment are\nbogus.  We already did exactly the same check in eligible_child(), we did\nnot drop tasklist_lock since then, and both variables need\nwrite_lock(tasklist) to be changed.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@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": "3ae4cbadf4bf97ee137b921a1b928d2a5dcd26ca",
      "tree": "1d8bea4faeae056da20b2401645900daa3c86c55",
      "parents": [
        "2f4e6e2a814eb1305a873a045401708d73f870bc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Oct 16 23:26:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:51 2007 -0700"
      },
      "message": "exit_notify: don\u0027t take tasklist for TIF_SIGPENDING re-targeting\n\n-\u003esiglock provides enough protection to iterate over the thread group.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Roland McGrath \u003croland@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": "2f4e6e2a814eb1305a873a045401708d73f870bc",
      "tree": "8860a0e557c6849143c363eb7c1c9e82333e7fe3",
      "parents": [
        "407af46a967ffd2f208f0a5fb3f1ff954801494a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Oct 16 23:26:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:51 2007 -0700"
      },
      "message": "wait_task_zombie: fix 2/3 races vs forget_original_parent()\n\nTwo threads, T1 and T2.  T2 ptraces P, and P is not a child of ptracer\u0027s\nthread group.  P exits and goes to TASK_ZOMBIE.\n\nT1 does wait_task_zombie(P):\n\n\tP-\u003eexit_state \u003d TASK_DEAD;\n\t...\n\tread_unlock(\u0026tasklist_lock);\n\n\t\t\t\t\tT2 does exit(), takes tasklist,\n\t\t\t\t\tforget_original_parent() does\n\t\t\t\t\t__ptrace_unlink(P) but doesn\u0027t\n\t\t\t\t\tcall do_notify_parent(P) because\n\t\t\t\t\tp-\u003eexit_state \u003d\u003d EXIT_DEAD.\n\nNow, P is not visible to our process: __ptrace_unlink() removed it from\n-\u003echildren. We should send notification to P-\u003eparent and release P if and\nonly if SIGCHLD is ignored.\n\nAnd we have 3 bugs:\n\n1. P-\u003eparent does do_wait() and gets -ECHILD (P is on -\u003eparent-\u003echildren,\n   but its state is TASK_DEAD).\n\n2. // wait_task_zombie() continues\n\n\tif (put_user(...)) {\n\t\t// TODO: is this safe?\n\t\tp-\u003eexit_state \u003d EXIT_ZOMBIE;\n\t\treturn;\n\t}\n\n   we return without notification/release, task_struct leaked.\n\n   Solution: ignore -EFAULT and proceed. It is an application\u0027s bug if\n   we can\u0027t fill infop/stat_addr (in case of VM_FAULT_OOM we have much\n   more problems).\n\n3. // wait_task_zombie() continues\n\n\tif (p-\u003ereal_parent !\u003d p-\u003eparent) {\n\t\t// Not taken, it was untraced\u0027ed\n\t\t...\n\t}\n\n\trelease_task(p);\n\n   we released the task which we shouldn\u0027t.\n\n   Solution: check -\u003ereal_parent !\u003d -\u003eparent before, under tasklist_lock,\n   but use ptrace_unlink() instead of __ptrace_unlink() to check -\u003eptrace.\n\nThis patch hopefully solves 2 and 3, the 1st bug will be fixed later, we need\nsome cleanups in forget_original_parent/reparent_thread.\n\nHowever, the first race is very unlikely and not critical, so I hope it makes\nsense to fix 1 and 2 for now.\n\n4. Small cleanup: don\u0027t \"restore\" EXIT_ZOMBIE unless we know we are not going\n   to realease the child.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Roland McGrath \u003croland@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": "407af46a967ffd2f208f0a5fb3f1ff954801494a",
      "tree": "cf9b98874efb3f6a9e244c4f2be6eaf69db3306e",
      "parents": [
        "a8b0ac0873cd911b3bf3d6e2db98f80d0b158d56"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Oct 16 23:26:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:51 2007 -0700"
      },
      "message": "wait_task_zombie: remove unneeded child-\u003esignal check\n\nA zombie must have a valid -\u003esignal, we are going to release it and\n__exit_signal() starts with BUG_ON(!sig).\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@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": "84eb646b6eabcd82ec563f30d2d9d40c2054a9c9",
      "tree": "96219c5844c80c40cbc9814a13a9a72de7430fc7",
      "parents": [
        "8e9073ed027771bcdee4033eb900a3c09ac90a19"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Oct 16 23:26:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:51 2007 -0700"
      },
      "message": "handle the multi-threaded init\u0027s exit() properly\n\nWith or without this patch, multi-threaded init\u0027s are not fully supported,\nbut do_exit() is completely wrong.  This becomes a real problem when we\nsupport pid namespaces.\n\n1. do_exit() panics when the main thread of /sbin/init exits. It should not\n   until the whole thread group exits. Move the code below, under the\n   \"if (group_dead)\" check.\n\n   Note: this means that forget_original_parent() can use an already dead\n   child_reaper()\u0027s task_struct. This is OK for /sbin/init because\n\n   \t- do_wait() from alive sub-thread still can reap a zombie, we iterate\n   \t  over all sub-thread\u0027s -\u003echildren lists\n\n   \t- do_notify_parent() will wakeup some alive sub-thread because it sends\n   \t  the group-wide signal\n\n   However, we should remove choose_new_parent()-\u003eBUG_ON(reaper-\u003eexit_state)\n   for this.\n\n2. We are playing games with -\u003ensproxy-\u003epid_ns. This code is bogus today, and\n   it has to be changed anyway when we really support pid namespaces, just\n   remove it.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nRoland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2ee7198cc2414aade234a3cebc69e6cbff35d9b",
      "tree": "e89d52b8b64f6eb675add025ba8507863e4bc0f8",
      "parents": [
        "7917ff9a4cefd0500aa4a1b1942da96dbce6999f"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Oct 16 23:26:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:51 2007 -0700"
      },
      "message": "pi-futex: set PF_EXITING without taking -\u003epi_lock\n\nIt is a bit annoying that do_exit() takes -\u003epi_lock to set PF_EXITING.  All\nwe need is to synchronize with lookup_pi_state() which saw this task\nwithout PF_EXITING under -\u003epi_lock.\n\nChange do_exit() to use spin_unlock_wait().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: 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": "a9022e9cb9e919e31d5bc15fcef5c7186740645e",
      "tree": "48aea98aec8d9822155b2054bc60f9142f478769",
      "parents": [
        "ea0b7d5da0024df1c6f2c2139dbeb4fd260baac6"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Tue Oct 16 23:26:23 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:48 2007 -0700"
      },
      "message": "Clean up duplicate includes in kernel/\n\nThis patch cleans up duplicate includes in\n\tkernel/\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Satyam Sharma \u003cssatyam@cse.iitk.ac.in\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9ac52315d4cf5f561f36dabaf0720c00d3553162",
      "tree": "afe7284f34a65d2540fcb2a9b764834f9d790fa7",
      "parents": [
        "5e84cfde51cf303d368fcb48f22059f37b3872de"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Mon Oct 15 17:00:19 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 15 17:00:19 2007 +0200"
      },
      "message": "sched: guest CPU accounting: add guest-CPU /proc/\u003cpid\u003e/stat fields\n\nlike for cpustat, introduce the \"gtime\" (guest time of the task) and\n\"cgtime\" (guest time of the task children) fields for the\ntasks. Modify signal_struct and task_struct.\n\nModify /proc/\u003cpid\u003e/stat to display these new fields.\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nAcked-by: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b8fceee17a310f189188599a8fa5e9beaff57eb0",
      "tree": "21308319be2579059a4d4d7db680a73334659f82",
      "parents": [
        "9db619e66503494e41159de3c76fafabe80d016b"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Thu Sep 20 12:40:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Sep 20 13:19:59 2007 -0700"
      },
      "message": "signalfd simplification\n\nThis simplifies signalfd code, by avoiding it to remain attached to the\nsighand during its lifetime.\n\nIn this way, the signalfd remain attached to the sighand only during\npoll(2) (and select and epoll) and read(2).  This also allows to remove\nall the custom \"tsk \u003d\u003d current\" checks in kernel/signal.c, since\ndequeue_signal() will only be called by \"current\".\n\nI think this is also what Ben was suggesting time ago.\n\nThe external effect of this, is that a thread can extract only its own\nprivate signals and the group ones.  I think this is an acceptable\nbehaviour, in that those are the signals the thread would be able to\nfetch w/out signalfd.\n\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f2ab6d8889422c1f5354f014e8bef337b1d1bade",
      "tree": "ab7de371c86ce9e72015363fc06563709d823354",
      "parents": [
        "c24c55c75a0d799be07ad6c1a7ff4ccfe25da75b"
      ],
      "author": {
        "name": "Jonathan Lim",
        "email": "jlim@sgi.com",
        "time": "Thu Aug 30 23:56:23 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Aug 31 01:42:22 2007 -0700"
      },
      "message": "Assign task_struct.exit_code before taskstats_exit()\n\ntaskstats.ac_exitcode is assigned to task_struct.exit_code in bacct_add_tsk()\nthrough the following kernel function calls:\n\n  do_exit()\n    taskstats_exit()\n      fill_pid()\n        bacct_add_tsk()\n\nThe problem is that in do_exit(), task_struct.exit_code is set to \u0027code\u0027 only\nafter taskstats_exit() has been called.  So we need to move the assignment\nbefore taskstats_exit().\n\nSigned-off-by: Jonathan Lim \u003cjlim@sgi.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "247284481ca40288bd120cf0707681c3bdbee78f",
      "tree": "d0de3020d9961561b66b44af8ddc9e4d1442a7fe",
      "parents": [
        "b6b1d87785712474d0ed80689c17107d616a1171"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sat Aug 04 01:04:41 2007 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Aug 03 15:06:33 2007 -0700"
      },
      "message": "Kill some obsolete sub-thread-ptrace stuff\n\nThere is a couple of subtle checks which were needed to handle ptracing from\nthe same thread group. This was deprecated a long ago, imho this code just\ncomplicates the understanding.\n\nAnd, the \"-\u003eparent-\u003esignal-\u003eflags \u0026 SIGNAL_GROUP_EXIT\" check in exit_notify()\nis not right. SIGNAL_GROUP_EXIT can mean exec(), not exit_group(). This means\nptracer can lose a ptraced zombie on exec(). Minor problem, but still the bug.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0c1eecfb345401629aa57c9d3b077273e56c45a7",
      "tree": "522d7090966c6e70f3147c30e3308781e0309938",
      "parents": [
        "b1457bcc3a00a0446c7f6e2f22fd24b6d8d0a309"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "Freezer: avoid freezing kernel threads prematurely\n\nKernel threads should not have TIF_FREEZE set when user space processes are\nbeing frozen, since otherwise some of them might be frozen prematurely.\nTo prevent this from happening we can (1) make exit_mm() unset TIF_FREEZE\nunconditionally just after clearing tsk-\u003emm and (2) make try_to_freeze_tasks()\ncheck if p-\u003emm is different from zero and PF_BORROWED_MM is unset in p-\u003eflags\nwhen user space processes are to be frozen.\n\nNamely, when user space processes are being frozen, we only should set\nTIF_FREEZE for tasks that have p-\u003emm different from NULL and don\u0027t have\nPF_BORROWED_MM set in p-\u003eflags.  For this reason task_lock() must be used to\nprevent try_to_freeze_tasks() from racing with use_mm()/unuse_mm(), in which\np-\u003emm and p-\u003eflags.PF_BORROWED_MM are changed under task_lock(p).  Also, we\nneed to prevent the following scenario from happening:\n\n* daemonize() is called by a task spawned from a user space code path\n* freezer checks if the task has p-\u003emm set and the result is positive\n* task enters exit_mm() and clears its TIF_FREEZE\n* freezer sets TIF_FREEZE for the task\n* task calls try_to_freeze() and goes to the refrigerator, which is wrong at\n  that point\n\nThis requires us to acquire task_lock(p) before p-\u003eflags.PF_BORROWED_MM and\np-\u003emm are examined and release it after TIF_FREEZE is set for p (or it turns\nout that TIF_FREEZE should not be set).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "831441862956fffa17b9801db37e6ea1650b0f69",
      "tree": "b0334921341f8f1734bdd3243de76d676329d21c",
      "parents": [
        "787d2214c19bcc9b6ac48af0ce098277a801eded"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 17 04:03:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:02 2007 -0700"
      },
      "message": "Freezer: make kernel threads nonfreezable by default\n\nCurrently, the freezer treats all tasks as freezable, except for the kernel\nthreads that explicitly set the PF_NOFREEZE flag for themselves.  This\napproach is problematic, since it requires every kernel thread to either\nset PF_NOFREEZE explicitly, or call try_to_freeze(), even if it doesn\u0027t\ncare for the freezing of tasks at all.\n\nIt seems better to only require the kernel threads that want to or need to\nbe frozen to use some freezer-related code and to remove any\nfreezer-related code from the other (nonfreezable) kernel threads, which is\ndone in this patch.\n\nThe patch causes all kernel threads to be nonfreezable by default (ie.  to\nhave PF_NOFREEZE set by default) and introduces the set_freezable()\nfunction that should be called by the freezable kernel threads in order to\nunset PF_NOFREEZE.  It also makes all of the currently freezable kernel\nthreads call set_freezable(), so it shouldn\u0027t cause any (intentional)\nchange of behaviour to appear.  Additionally, it updates documentation to\ndescribe the freezing of tasks more accurately.\n\n[akpm@linux-foundation.org: build fixes]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "522ed7767e800cff6c650ec64b0ee0677303119c",
      "tree": "f65ecb29f2cf885018d3557f840de3ef4be6ec64",
      "parents": [
        "4f27c00bf80f122513d3a5be16ed851573164534"
      ],
      "author": {
        "name": "Miloslav Trmac",
        "email": "mitr@redhat.com",
        "time": "Sun Jul 15 23:40:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:47 2007 -0700"
      },
      "message": "Audit: add TTY input auditing\n\nAdd TTY input auditing, used to audit system administrator\u0027s actions.  This is\nrequired by various security standards such as DCID 6/3 and PCI to provide\nnon-repudiation of administrator\u0027s actions and to allow a review of past\nactions if the administrator seems to overstep their duties or if the system\nbecomes misconfigured for unknown reasons.  These requirements do not make it\nnecessary to audit TTY output as well.\n\nCompared to an user-space keylogger, this approach records TTY input using the\naudit subsystem, correlated with other audit events, and it is completely\ntransparent to the user-space application (e.g.  the console ioctls still\nwork).\n\nTTY input auditing works on a higher level than auditing all system calls\nwithin the session, which would produce an overwhelming amount of mostly\nuseless audit events.\n\nAdd an \"audit_tty\" attribute, inherited across fork ().  Data read from TTYs\nby process with the attribute is sent to the audit subsystem by the kernel.\nThe audit netlink interface is extended to allow modifying the audit_tty\nattribute, and to allow sending explanatory audit events from user-space (for\nexample, a shell might send an event containing the final command, after the\ninteractive command-line editing and history expansion is performed, which\nmight be difficult to decipher from the TTY input alone).\n\nBecause the \"audit_tty\" attribute is inherited across fork (), it would be set\ne.g.  for sshd restarted within an audited session.  To prevent this, the\naudit_tty attribute is cleared when a process with no open TTY file\ndescriptors (e.g.  after daemon startup) opens a TTY.\n\nSee https://www.redhat.com/archives/linux-audit/2007-June/msg00000.html for a\nmore detailed rationale document for an older version of this patch.\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Miloslav Trmac \u003cmitr@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Paul Fulghum \u003cpaulkf@microgate.com\u003e\nCc: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nCc: Steve Grubb \u003csgrubb@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": "e18eecb8b35703a5eea73ee2b45324262029e62c",
      "tree": "8c276ae6633b8116ca366274091b00491fd50bbe",
      "parents": [
        "84812217e395f5272eac36856c0a2415d61fe139"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Sun Jul 15 23:38:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:38 2007 -0700"
      },
      "message": "Add generic exit-time stack-depth checking to CONFIG_DEBUG_STACK_USAGE\n\nAdd generic exit-time stack-depth checking to CONFIG_DEBUG_STACK_USAGE.\n\nThis also adds UML support.\n\nTested on UML and i386.\n\n[akpm@linux-foundation.org: cleanups, speedups, tweaks]\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\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": "172ba844a8851c3edd13c0a979cdf46bd5e3cc1a",
      "tree": "5e1bfd820c8e68fc28450688f166f4136351e1e1",
      "parents": [
        "b27f03d4bdc145a09fb7b0c0e004b29f1ee555fa"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Mon Jul 09 18:52:00 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 09 18:52:00 2007 +0200"
      },
      "message": "sched: update delay-accounting to use CFS\u0027s precise stats\n\nupdate delay-accounting to use CFS\u0027s precise stats.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e05606d3301525aa67b081ad9fccade2b31ab35a",
      "tree": "2a3e5a477dfca70ce32f3ea8dbc5e16034c98c23",
      "parents": [
        "138a8aeb5b9e5c5abd5e5ec22b6d1848e7e9c50b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 09 18:51:59 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 09 18:51:59 2007 +0200"
      },
      "message": "sched: clean up the rt priority macros\n\nclean up the rt priority macros, pointed out by Andrew Morton.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f64f61145a38f7039e4f1c0b50dcc3fbe70ec28e",
      "tree": "5864c65e858dc320ab16d6025132bd26d4f54e7e",
      "parents": [
        "c65cc8705256ad7524c97564b4fe3ca9782bf6d1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 09 18:51:58 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 09 18:51:58 2007 +0200"
      },
      "message": "sched: remove sched_exit()\n\nremove sched_exit(): the elaborate dance of us trying to recover\ntimeslices given to child tasks never really worked.\n\nCFS does not need it either.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "778e9a9c3e7193ea9f434f382947155ffb59c755",
      "tree": "2ceb8c7ce1d55124982b77966dcd65cee5cc623b",
      "parents": [
        "1a539a87280b3032fd12bc93a4a82f1d8aa97ca8"
      ],
      "author": {
        "name": "Alexey Kuznetsov",
        "email": "kuznet@ms2.inr.ac.ru",
        "time": "Fri Jun 08 13:47:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Jun 08 17:23:34 2007 -0700"
      },
      "message": "pi-futex: fix exit races and locking problems\n\n1. New entries can be added to tsk-\u003epi_state_list after task completed\n   exit_pi_state_list(). The result is memory leakage and deadlocks.\n\n2. handle_mm_fault() is called under spinlock. The result is obvious.\n\n3. results in self-inflicted deadlock inside glibc.\n   Sometimes futex_lock_pi returns -ESRCH, when it is not expected\n   and glibc enters to for(;;) sleep() to simulate deadlock. This problem\n   is quite obvious and I think the patch is right. Though it looks like\n   each \"if\" in futex_lock_pi() got some stupid special case \"else if\". :-)\n\n4. sometimes futex_lock_pi() returns -EDEADLK,\n   when nobody has the lock. The reason is also obvious (see comment\n   in the patch), but correct fix is far beyond my comprehension.\n   I guess someone already saw this, the chunk:\n\n                        if (rt_mutex_trylock(\u0026q.pi_state-\u003epi_mutex))\n                                ret \u003d 0;\n\n   is obviously from the same opera. But it does not work, because the\n   rtmutex is really taken at this point: wake_futex_pi() of previous\n   owner reassigned it to us. My fix works. But it looks very stupid.\n   I would think about removal of shift of ownership in wake_futex_pi()\n   and making all the work in context of process taking lock.\n\nFrom: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\nFix 1) Avoid the tasklist lock variant of the exit race fix by adding\n    an additional state transition to the exit code.\n\n    This fixes also the issue, when a task with recursive segfaults\n    is not able to release the futexes.\n\nFix 2) Cleanup the lookup_pi_state() failure path and solve the -ESRCH\n    problem finally.\n\nFix 3) Solve the fixup_pi_state_owner() problem which needs to do the fixup\n    in the lock protected section by using the in_atomic userspace access\n    functions.\n\n    This removes also the ugly lock drop / unqueue inside of fixup_pi_state()\n\nFix 4) Fix a stale lock in the error path of futex_wake_pi()\n\nAdded some error checks for verification.\n\nThe -EDEADLK problem is solved by the rtmutex fixups.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7bb44adef39ad3bda2be40bb34686bc56bd563a5",
      "tree": "1e9eecbd03877c7ac8b00a8cb1d4ae54ebec3bb1",
      "parents": [
        "3c6df2a9177c010bf811c361149069e4bfd9bb11"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed May 23 13:57:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 23 20:14:12 2007 -0700"
      },
      "message": "recalc_sigpending_tsk fixes\n\nSteve Hawkes discovered a problem where recalc_sigpending_tsk was called in\ndo_sigaction but no signal_wake_up call was made, preventing later signals\nfrom waking up blocked threads with TIF_SIGPENDING already set.\n\nIn fact, the few other calls to recalc_sigpending_tsk outside the signals\ncode are also subject to this problem in other race conditions.\n\nThis change makes recalc_sigpending_tsk private to the signals code.  It\nchanges the outside calls, as well as do_sigaction, to use the new\nrecalc_sigpending_and_wake instead.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: \u003cSteve.Hawkes@motorola.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fba2afaaec790dc5ab4ae8827972f342211bbb86",
      "tree": "2694d4cd8c6b7d69a5569b92151d61a3d4af39b7",
      "parents": [
        "5dc8bf8132d59c03fe2562bce165c2f03f021687"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Thu May 10 22:23:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 11 08:29:36 2007 -0700"
      },
      "message": "signal/timer/event: signalfd core\n\nThis patch series implements the new signalfd() system call.\n\nI took part of the original Linus code (and you know how badly it can be\nbroken :), and I added even more breakage ;) Signals are fetched from the same\nsignal queue used by the process, so signalfd will compete with standard\nkernel delivery in dequeue_signal().  If you want to reliably fetch signals on\nthe signalfd file, you need to block them with sigprocmask(SIG_BLOCK).  This\nseems to be working fine on my Dual Opteron machine.  I made a quick test\nprogram for it:\n\nhttp://www.xmailserver.org/signafd-test.c\n\nThe signalfd() system call implements signal delivery into a file descriptor\nreceiver.  The signalfd file descriptor if created with the following API:\n\nint signalfd(int ufd, const sigset_t *mask, size_t masksize);\n\nThe \"ufd\" parameter allows to change an existing signalfd sigmask, w/out going\nto close/create cycle (Linus idea).  Use \"ufd\" \u003d\u003d -1 if you want a brand new\nsignalfd file.\n\nThe \"mask\" allows to specify the signal mask of signals that we are interested\nin.  The \"masksize\" parameter is the size of \"mask\".\n\nThe signalfd fd supports the poll(2) and read(2) system calls.  The poll(2)\nwill return POLLIN when signals are available to be dequeued.  As a direct\nconsequence of supporting the Linux poll subsystem, the signalfd fd can use\nused together with epoll(2) too.\n\nThe read(2) system call will return a \"struct signalfd_siginfo\" structure in\nthe userspace supplied buffer.  The return value is the number of bytes copied\nin the supplied buffer, or -1 in case of error.  The read(2) call can also\nreturn 0, in case the sighand structure to which the signalfd was attached,\nhas been orphaned.  The O_NONBLOCK flag is also supported, and read(2) will\nreturn -EAGAIN in case no signal is available.\n\nIf the size of the buffer passed to read(2) is lower than sizeof(struct\nsignalfd_siginfo), -EINVAL is returned.  A read from the signalfd can also\nreturn -ERESTARTSYS in case a signal hits the process.  The format of the\nstruct signalfd_siginfo is, and the valid fields depends of the (-\u003ecode \u0026\n__SI_MASK) value, in the same way a struct siginfo would:\n\nstruct signalfd_siginfo {\n\t__u32 signo;\t/* si_signo */\n\t__s32 err;\t/* si_errno */\n\t__s32 code;\t/* si_code */\n\t__u32 pid;\t/* si_pid */\n\t__u32 uid;\t/* si_uid */\n\t__s32 fd;\t/* si_fd */\n\t__u32 tid;\t/* si_fd */\n\t__u32 band;\t/* si_band */\n\t__u32 overrun;\t/* si_overrun */\n\t__u32 trapno;\t/* si_trapno */\n\t__s32 status;\t/* si_status */\n\t__s32 svint;\t/* si_int */\n\t__u64 svptr;\t/* si_ptr */\n\t__u64 utime;\t/* si_utime */\n\t__u64 stime;\t/* si_stime */\n\t__u64 addr;\t/* si_addr */\n};\n\n[akpm@linux-foundation.org: fix signalfd_copyinfo() on i386]\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e713d0dab21a68500720e222fa02567fc7dfb14b",
      "tree": "a56f90ce94d9287b73da6db72ed0e73542a70a07",
      "parents": [
        "4ac24b3ba9016881b11646114bb5cd12cf23edd9"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Thu May 10 22:22:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 11 08:29:35 2007 -0700"
      },
      "message": "attach_pid() with struct pid parameter\n\nattach_pid() currently takes a pid_t and then uses find_pid() to find the\ncorresponding struct pid.  Sometimes we already have the struct pid.  We can\nthen skip find_pid() if attach_pid() were to take a struct pid parameter.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: \u003ccontainers@lists.osdl.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6eaeeaba39e5fa3d52a0bb8de15e995516ae251a",
      "tree": "5b4052fabfe107ad5332cb758ad8d86ea5a87848",
      "parents": [
        "02239c29967418284c05d58971894d658575e78c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu May 10 22:22:37 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 11 08:29:34 2007 -0700"
      },
      "message": "getrusage(): fill ru_inblock and ru_oublock fields if possible\n\nIf CONFIG_TASK_IO_ACCOUNTING is defined, we update io accounting counters for\neach task.\n\nThis patch permits reporting of values using the well known getrusage()\nsyscall, filling ru_inblock and ru_oublock instead of null values.\n\nAs TASK_IO_ACCOUNTING currently counts bytes counts, we approximate blocks\ncount doing : nr_blocks \u003d nr_bytes / 512\n\nExample of use :\n----------------------\nAfter patch is applied, /usr/bin/time command can now give a good\napproximation of IO that the process had to do.\n\n$ /usr/bin/time grep tototo /usr/include/*\nCommand exited with non-zero status 1\n0.00user 0.02system 0:02.11elapsed 1%CPU (0avgtext+0avgdata 0maxresident)k\n24288inputs+0outputs (0major+259minor)pagefaults 0swaps\n\n$ /usr/bin/time dd if\u003d/dev/zero of\u003d/tmp/testfile count\u003d1000\n1000+0 enregistrements lus\n1000+0 enregistrements écrits\n512000 octets (512 kB) copiés, 0,00326601 seconde, 157 MB/s\n0.00user 0.00system 0:00.00elapsed 80%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+3000outputs (0major+299minor)pagefaults 0swaps\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "10ab825bdef8df510f99c703a5a2d9b13a4e31a5",
      "tree": "e4db81f26c03ba5a5bff43ed44646a4ed4509d67",
      "parents": [
        "5de18d169739293e27e0cf9acfc75a2d2f4aa572"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed May 09 02:34:37 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:53 2007 -0700"
      },
      "message": "change kernel threads to ignore signals instead of blocking them\n\nCurrently kernel threads use sigprocmask(SIG_BLOCK) to protect against\nsignals.  This doesn\u0027t prevent the signal delivery, this only blocks\nsignal_wake_up().  Every \"killall -33 kthreadd\" means a \"struct siginfo\"\nleak.\n\nChange kthreadd_setup() to set all handlers to SIG_IGN instead of blocking\nthem (make a new helper ignore_signals() for that).  If the kernel thread\nneeds some signal, it should use allow_signal() anyway, and in that case it\nshould not use CLONE_SIGHAND.\n\nNote that we can\u0027t change daemonize() (should die!) in the same way,\nbecause it can be used along with CLONE_SIGHAND.  This means that\nallow_signal() still should unblock the signal to work correctly with\ndaemonize()ed threads.\n\nHowever, disallow_signal() doesn\u0027t block the signal any longer but ignores\nit.\n\nNOTE: with or without this patch the kernel threads are not protected from\nhandle_stop_signal(), this seems harmless, but not good.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "49d769d52e16efabd3ad47b7995522fff771371d",
      "tree": "cf6ec2c39ae671c3f4cae34daf9d0558ca4fcf49",
      "parents": [
        "73c279927f89561ecb45b2dfdf9314bafcfd9f67"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed May 09 02:34:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:53 2007 -0700"
      },
      "message": "Change reparent_to_init to reparent_to_kthreadd\n\nWhen a kernel thread calls daemonize, instead of reparenting the thread to\ninit reparent the thread to kthreadd next to the threads created by\nkthread_create.\n\nThis is really just a stop gap until daemonize goes away, but it does\nensure no kernel threads are under init and they are all in one place that\nis easy to find.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e63340ae6b6205fef26b40a75673d1c9c0c8bb90",
      "tree": "8d3212705515edec73c3936bb9e23c71d34a7b41",
      "parents": [
        "04c9167f91e309c9c4ea982992aa08e83b2eb42e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue May 08 00:28:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:07 2007 -0700"
      },
      "message": "header cleaning: don\u0027t include smp_lock.h when not used\n\nRemove includes of \u003clinux/smp_lock.h\u003e where it is not used/needed.\nSuggested by Al Viro.\n\nBuilds cleanly on x86_64, i386, alpha, ia64, powerpc, sparc,\nsparc64, and arm (all 59 defconfigs).\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "73243284463a761e04d69d22c7516b2be7de096c",
      "tree": "1a823a613568b48d3a4db694aa02ce380643a3dc",
      "parents": [
        "906e0be197232c219197d058ef5095baa7764cd4"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Sun May 06 14:50:20 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:57 2007 -0700"
      },
      "message": "Return EPERM not ECHILD on security_task_wait failure\n\nwait* syscalls return -ECHILD even when an individual PID of a live child\nwas requested explicitly, when security_task_wait denies the operation.\nThis means that something like a broken SELinux policy can produce an\nunexpected failure that looks just like a bug with wait or ptrace or\nsomething.\n\nThis patch makes do_wait return -EACCES (or other appropriate error returned\nfrom security_task_wait() instead of -ECHILD if some children were ruled out\nsolely because security_task_wait failed.\n\n[jmorris@namei.org: switch error code to EACCES]\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nAcked-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14e9d5730adfca26452b3a2838a80af6950556f5",
      "tree": "2288e59261478c013935cfe99e6565057e525452",
      "parents": [
        "c97beb4710bc673867207d7d729f2ace4ca1f197"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Mar 28 23:38:16 2007 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Mar 29 08:16:23 2007 -0700"
      },
      "message": "[PATCH] pid: Properly detect orphaned process groups in exit_notify\n\nIn commit 0475ac0845f9295bc5f69af45f58dff2c104c8d1 when converting the\norphaned process group handling to use struct pid I made a small\nmistake.  I accidentally replaced an \u003d\u003d with a !\u003d.\n\nBesides just being a dumb thing to do apparently this has a bad side\neffect.  The improper orphaned process group detection causes kwin to\ndie after a suspend/resume cycle.\n\nI\u0027m amazed this patch has been around as long as it has without anyone\nelse noticing something funny going on.\n\nAnd the following people deserve credit for spotting and helping\nto reproduce this.\n\nThanks to: Sid Boyce \u003cg3vbv@blueyonder.co.uk\u003e\nThanks to: \"Michael Wu\"\n\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e7cd6c413c9e6fbb5e1ee2acdadb4ababd2d474",
      "tree": "de97d00794ee0c787b6c551a91e33fb1faa48caa",
      "parents": [
        "0475ac0845f9295bc5f69af45f58dff2c104c8d1"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Feb 12 00:52:58 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:32 2007 -0800"
      },
      "message": "[PATCH] pid: replace is_orphaned_pgrp with is_current_pgrp_orphaned\n\nEvery call to is_orphaned_pgrp passed in process_group(current) which is racy\nwith respect to another thread changing our process group.  It didn\u0027t bite us\nbecause we were dealing with integers and the worse we would get would be a\nstale answer.\n\nIn switching the checks to use struct pid to be a little more efficient and\nprepare the way for pid namespaces this race became apparent.\n\nSo I simplified the calls to the more specialized is_current_pgrp_orphaned so\nI didn\u0027t have to worry about making logic changes to avoid the race.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0475ac0845f9295bc5f69af45f58dff2c104c8d1",
      "tree": "2052ddeb6cc271238a1470a2fb3a7082bb1eefd1",
      "parents": [
        "04a2e6a5cbf84e85fe86de0a18f6509b147e1d89"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Feb 12 00:52:57 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:32 2007 -0800"
      },
      "message": "[PATCH] pid: use struct pid for talking about process groups in exitc\n\nModify has_stopped_jobs and will_become_orphan_pgrp to use struct pid based\nprocess groups.  This reduces the number of hash tables looks ups and paves\nthe way for multiple pid spaces.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "04a2e6a5cbf84e85fe86de0a18f6509b147e1d89",
      "tree": "67dd67d2c4c18e5c36654dfe569e3085bd262ba5",
      "parents": [
        "8d42db189ca99703f0f4f91c477cb54808c8eaaa"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Feb 12 00:52:56 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:31 2007 -0800"
      },
      "message": "[PATCH] pid: make session_of_pgrp use struct pid instead of pid_t\n\nTo properly implement a pid namespace I need to deal exclusively in terms of\nstruct pid, because pid_t values become ambiguous.\n\nTo this end session_of_pgrp is transformed to take and return a struct pid\npointer.  To avoid the need to worry about reference counting I now require my\ncaller to hold the appropriate locks.  Leaving callers repsonsible for\nincreasing the reference count if they need access to the result outside of\nthe locks.\n\nSince session_of_pgrp currently only has one caller and that caller simply\nuses only test the result for equality with another process group, the locking\nchange means I don\u0027t actually have to acquire the tasklist_lock at all.\n\ntiocspgrp is also modified to take and release the lock.  The logic there is a\nlittle more complicated but nothing I won\u0027t need when I convert pgrp of a tty\nto a struct pid pointer.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "944be0b224724fcbf63c3a3fe3a5478c325a6547",
      "tree": "83877201ca028cf0ad3d7ee74d06c26d2dfde95e",
      "parents": [
        "92ba0ee2770ed4954e3f8ba412ef2f37e5519477"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 12 00:52:26 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:30 2007 -0800"
      },
      "message": "[PATCH] close_files(): add scheduling point\n\nclose_files() can sometimes take long enough to trigger the soft lockup\ndetector.\n\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72fd4a35a824331d7a0f4168d7576502d95d34b3",
      "tree": "be27880bc36b7f62e8044a88b8744a35c5317714",
      "parents": [
        "262086cf5b5343c2b81c97b1c606058e921859df"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Sat Feb 10 01:45:59 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:32 2007 -0800"
      },
      "message": "[PATCH] Numerous fixes to kernel-doc info in source files.\n\nA variety of (mostly) innocuous fixes to the embedded kernel-doc content in\nsource files, including:\n\n  * make multi-line initial descriptions single line\n  * denote some function names, constants and structs as such\n  * change erroneous opening \u0027/*\u0027 to \u0027/**\u0027 in a few places\n  * reword some text for clarity\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nCc: \"Randy.Dunlap\" \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0f2452855d86901ba3766826ccb5606ea4e15ab9",
      "tree": "b5a48b7bc49bbfdf97434e4f9cc83607d78eb0de",
      "parents": [
        "444f378b237a0f728f5c4aba752c08d13c209344"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Tue Jan 30 15:28:23 2007 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jan 30 13:40:36 2007 -0800"
      },
      "message": "[PATCH] namespaces: fix task exit disaster\n\nThis is based on a patch by Eric W.  Biederman, who pointed out that pid\nnamespaces are still fake, and we only have one ever active.\n\nSo for the time being, we can modify any code which could access\ntsk-\u003ensproxy-\u003epid_ns during task exit to just use \u0026init_pid_ns instead,\nand move the exit_task_namespaces call in do_exit() back above\nexit_notify(), so that an exiting nfs server has a valid tsk-\u003esighand to\nwork with.\n\nLong term, pulling pid_ns out of nsproxy might be the cleanest solution.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n\n[ Eric\u0027s patch fixed to take care of free_pid() too ]\n\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "444f378b237a0f728f5c4aba752c08d13c209344",
      "tree": "248fd00bb2e60cb0890fce38b6a66fed65f977e4",
      "parents": [
        "8c8c4bafc3a20a6fb9078315ff865bc42276f9ba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jan 30 13:35:18 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jan 30 13:35:18 2007 -0800"
      },
      "message": "Revert \"[PATCH] namespaces: fix exit race by splitting exit\"\n\nThis reverts commit 7a238fcba0629b6f2edbcd37458bae56fcf36be5 in\npreparation for a better and simpler fix proposed by Eric Biederman\n(and fixed up by Serge Hallyn)\n\nAcked-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7a238fcba0629b6f2edbcd37458bae56fcf36be5",
      "tree": "ad556f0ec00637df5b4c4a2063c6b3325666d2f1",
      "parents": [
        "c0d4d573feed199b16094c072e7cb07afb01c598"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Jan 29 13:19:40 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jan 30 08:26:44 2007 -0800"
      },
      "message": "[PATCH] namespaces: fix exit race by splitting exit\n\nFix exit race by splitting the nsproxy putting into two pieces.  First\npiece reduces the nsproxy refcount.  If we dropped the last reference, then\nit puts the mnt_ns, and returns the nsproxy as a hint to the caller.  Else\nit returns NULL.  The second piece of exiting task namespaces sets\ntsk-\u003ensproxy to NULL, and drops the references to other namespaces and\nfrees the nsproxy only if an nsproxy was passed in.\n\nA little awkward and should probably be reworked, but hopefully it fixes\nthe NFS oops.\n\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Daniel Hokka Zakrisson \u003cdaniel@hozac.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "241ceee0b442c69226fb882d61d9b9785743898f",
      "tree": "398eb111e2addcc7e5cc1f1c30006b9ec92b7a0e",
      "parents": [
        "9d572ecbd81b9ff6e6a9bc0d2598212a59eb738a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Dec 24 23:30:44 2006 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 31 14:41:18 2006 -0800"
      },
      "message": "[PATCH] restore -\u003epdeath_signal behaviour\n\nCommit b2b2cbc4b2a2f389442549399a993a8306420baf introduced a user-\nvisible change: -\u003epdeath_signal is sent only when the entire thread\ngroup exits.\n\nWhile this change is imho good, it may break things.  So restore the\nold behaviour for now.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nTo: Albert Cahalan \u003cacahalan@gmail.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nCc: Linus Torvalds \u003ctorvalds@osdl.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Qi Yong \u003cqiyong@fc-cn.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b2b2cbc4b2a2f389442549399a993a8306420baf",
      "tree": "f734441636bbeba1c07aeeb84a05e0deac7b8d64",
      "parents": [
        "ef129412b4cbd6686d0749612cb9b76e207271f4"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Dec 21 21:28:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 22 09:03:41 2006 -0800"
      },
      "message": "[PATCH] Fix reparenting to the same thread group. (take 2)\n\nThis patch fixes the case when we reparent to a different thread in the\nsame thread group.  This modifies the code so that we do not send\nsignals and do not change the signal to send to SIGCHLD unless we have\nchange the thread group of our parents.  It also suppresses sending\npdeath_sig in this cas as well since the result of geppid doesn\u0027t\nchange.\n\nThanks to Oleg for spotting my bug of only fixing this for non-ptraced\ntasks.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Albert Cahalan \u003cacahalan@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Coywolf Qi Hunt \u003cqiyong@fc-cn.com\u003e\nAcked-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "01b2d93ca4c495f056471189ac6c4e6ac4cbbccb",
      "tree": "86aa1aabae8207e693e31ee68b526376388a36a3",
      "parents": [
        "31fccf7fe4097e62f038bdfe8f4f68ecaea8ebe7"
      ],
      "author": {
        "name": "Vadim Lobanov",
        "email": "vlobanov@speakeasy.net",
        "time": "Fri Dec 22 01:10:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 22 08:55:50 2006 -0800"
      },
      "message": "[PATCH] fdtable: Provide free_fdtable() wrapper\n\nChristoph Hellwig has expressed concerns that the recent fdtable changes\nexpose the details of the RCU methodology used to release no-longer-used\nfdtable structures to the rest of the kernel.  The trivial patch below\naddresses these concerns by introducing the appropriate free_fdtable()\ncalls, which simply wrap the release RCU usage.  Since free_fdtable() is a\none-liner, it makes sense to promote it to an inline helper.\n\nSigned-off-by: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4fd45812cbe875a620c86a096a5d46c742694b7e",
      "tree": "8d2c99caa718da6cda87229076adf708494ff251",
      "parents": [
        "bbea9f69668a3d0cf9feba15a724cd02896f8675"
      ],
      "author": {
        "name": "Vadim Lobanov",
        "email": "vlobanov@speakeasy.net",
        "time": "Sun Dec 10 02:21:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:57:22 2006 -0800"
      },
      "message": "[PATCH] fdtable: Remove the free_files field\n\nAn fdtable can either be embedded inside a files_struct or standalone (after\nbeing expanded).  When an fdtable is being discarded after all RCU references\nto it have expired, we must either free it directly, in the standalone case,\nor free the files_struct it is contained within, in the embedded case.\n\nCurrently the free_files field controls this behavior, but we can get rid of\nit entirely, as all the necessary information is already recorded.  We can\ndistinguish embedded and standalone fdtables using max_fds, and if it is\nembedded we can divine the relevant files_struct using container_of().\n\nSigned-off-by: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bbea9f69668a3d0cf9feba15a724cd02896f8675",
      "tree": "bc58506e4daba4a04309181a5501ae4eb5424783",
      "parents": [
        "f3d19c90fb117a5f080310a4592929aa8e1ad8e9"
      ],
      "author": {
        "name": "Vadim Lobanov",
        "email": "vlobanov@speakeasy.net",
        "time": "Sun Dec 10 02:21:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:57:22 2006 -0800"
      },
      "message": "[PATCH] fdtable: Make fdarray and fdsets equal in size\n\nCurrently, each fdtable supports three dynamically-sized arrays of data: the\nfdarray and two fdsets.  The code allows the number of fds supported by the\nfdarray (fdtable-\u003emax_fds) to differ from the number of fds supported by each\nof the fdsets (fdtable-\u003emax_fdset).\n\nIn practice, it is wasteful for these two sizes to differ: whenever we hit a\nlimit on the smaller-capacity structure, we will reallocate the entire fdtable\nand all the dynamic arrays within it, so any delta in the memory used by the\nlarger-capacity structure will never be touched at all.\n\nRather than hogging this excess, we shouldn\u0027t even allocate it in the first\nplace, and keep the capacities of the fdarray and the fdsets equal.  This\npatch removes fdtable-\u003emax_fdset.  As an added bonus, most of the supporting\ncode becomes simpler.\n\nSigned-off-by: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "62dfb5541a025b47df9405ff0219c7829a97d83b",
      "tree": "4690d5d0bb750f977a0b73662019e5ced3ab99b4",
      "parents": [
        "f020bc468fe4a91d32046d448511978c7b611315"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Dec 08 02:38:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:52 2006 -0800"
      },
      "message": "[PATCH] session_of_pgrp: kill unnecessary do_each_task_pid(PIDTYPE_PGID)\n\nAll members of the process group have the same sid and it can\u0027t be \u003d\u003d 0.\n\nNOTE: this code (and a similar one in sys_setpgid) was needed because it\nwas possibe to have -\u003esession \u003d\u003d 0. It\u0027s not possible any longer since\n\n\t[PATCH] pidhash: don\u0027t use zero pids\n\tCommit: c7c6464117a02b0d54feb4ebeca4db70fa493678\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "84d737866e2babdeab0c6b18ea155c6a649663b8",
      "tree": "e504da826174c2804d8c680828800aa680090686",
      "parents": [
        "6cc1b22a4acef3816eaa5f8c227d93d749b23195"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Fri Dec 08 02:38:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:52 2006 -0800"
      },
      "message": "[PATCH] add child reaper to pid_namespace\n\nAdd a per pid_namespace child-reaper.  This is needed so processes are reaped\nwithin the same pid space and do not spill over to the parent pid space.  Its\nalso needed so containers preserve existing semantic that pid \u003d\u003d 1 would reap\norphaned children.\n\nThis is based on Eric Biederman\u0027s patch: http://lkml.org/lkml/2006/2/6/285\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6b3286ed1169d74fea401367d6d4d6c6ec758a81",
      "tree": "faf5beddb797875bb92855f8606735478267959a",
      "parents": [
        "1ec320afdc9552c92191d5f89fcd1ebe588334ca"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Fri Dec 08 02:37:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:51 2006 -0800"
      },
      "message": "[PATCH] rename struct namespace to struct mnt_namespace\n\nRename \u0027struct namespace\u0027 to \u0027struct mnt_namespace\u0027 to avoid confusion with\nother namespaces being developped for the containers : pid, uts, ipc, etc.\n\u0027namespace\u0027 variables and attributes are also renamed to \u0027mnt_ns\u0027\n\nSigned-off-by: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1ec320afdc9552c92191d5f89fcd1ebe588334ca",
      "tree": "e526fb29f9487f1ea34aa9ccdf14c318aea2159f",
      "parents": [
        "937949d9edbf4049bd41af6c9f92c26280584564"
      ],
      "author": {
        "name": "Cedric Le Goater",
        "email": "clg@fr.ibm.com",
        "time": "Fri Dec 08 02:37:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:51 2006 -0800"
      },
      "message": "[PATCH] add process_session() helper routine: deprecate old field\n\nAdd an anonymous union and ((deprecated)) to catch direct usage of the\nsession field.\n\n[akpm@osdl.org: fix various missed conversions]\n[jdike@addtoit.com: fix UML bug]\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "937949d9edbf4049bd41af6c9f92c26280584564",
      "tree": "d0a28f503b082f890cfa1f7fe952fda8fc771752",
      "parents": [
        "ef55d53caa055aedee13e77da82740987dd64f2d"
      ],
      "author": {
        "name": "Cedric Le Goater",
        "email": "clg@fr.ibm.com",
        "time": "Fri Dec 08 02:37:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:51 2006 -0800"
      },
      "message": "[PATCH] add process_session() helper routine\n\nReplace occurences of task-\u003esignal-\u003esession by a new process_session() helper\nroutine.\n\nIt will be useful for pid namespaces to abstract the session pid number.\n\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ae424ae4b5bcd820ad6ee6f0b986c4e14ed4d6cf",
      "tree": "ef8bc16fc2415b50154135e3b23f8e34b9d75c86",
      "parents": [
        "7bcfa95e561f11a17720162935e4f704c5d6fda3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Dec 08 02:36:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:38 2006 -0800"
      },
      "message": "[PATCH] make set_special_pids() static\n\nMake set_special_pids() static, the only caller is daemonize().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "24ec839c431eb79bb8f6abc00c4e1eb3b8c4d517",
      "tree": "2ff478b1925159eeac007913c2a8f19d5f5e6010",
      "parents": [
        "562f9c574e0707f9159a729ea41faf53b221cd30"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Dec 08 02:36:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:38 2006 -0800"
      },
      "message": "[PATCH] tty: -\u003esignal-\u003etty locking\n\nFix the locking of signal-\u003etty.\n\nUse -\u003esighand-\u003esiglock to protect -\u003esignal-\u003etty; this lock is already used\nby most other members of -\u003esignal/-\u003esighand.  And unless we are \u0027current\u0027\nor the tasklist_lock is held we need -\u003esiglock to access -\u003esignal anyway.\n\n(NOTE: sys_unshare() is broken wrt -\u003esighand locking rules)\n\nNote that tty_mutex is held over tty destruction, so while holding\ntty_mutex any tty pointer remains valid.  Otherwise the lifetime of ttys\nare governed by their open file handles.  This leaves some holes for tty\naccess from signal-\u003etty (or any other non file related tty access).\n\nIt solves the tty SLAB scribbles we were seeing.\n\n(NOTE: the change from group_send_sig_info to __group_send_sig_info needs to\n       be examined by someone familiar with the security framework, I think\n       it is safe given the SEND_SIG_PRIV from other __group_send_sig_info\n       invocations)\n\n[schwidefsky@de.ibm.com: 3270 fix]\n[akpm@osdl.org: various post-viro fixes]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "115085ea0794c0f339be8f9d25505c7f9861d824",
      "tree": "0b69f20ab8ab53702a4c94c11927e60fa058b509",
      "parents": [
        "128fb95650b3273a8dc9ba5514b6fe7db8ea30bf"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Dec 06 20:36:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:34 2006 -0800"
      },
      "message": "[PATCH] taskstats: cleanup do_exit() path\n\ndo_exit:\n\ttaskstats_exit_alloc()\n\t...\n\ttaskstats_exit_send()\n\ttaskstats_exit_free()\n\nI think this is not good, let it be a single function exported to the core\nkernel, taskstats_exit(), which does alloc + send + free itself.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "093a8e8aecd77b2799934996a55a6838e1e2b8f3",
      "tree": "ece87b2e194494059b2d4aaa43a094786dac1db7",
      "parents": [
        "05d5bcd60e8202e5c7b28cf61186043a4d612623"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sat Oct 28 10:38:51 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 28 11:30:54 2006 -0700"
      },
      "message": "[PATCH] taskstats_tgid_free: fix usage\n\ntaskstats_tgid_free() is called on copy_process\u0027s error path. This is wrong.\n\n\tIF (clone_flags \u0026 CLONE_THREAD)\n\t\tWe should not clear -\u003esignal-\u003etaskstats, current uses it,\n\t\tit probably has a valid accumulated info.\n\tELSE\n\t\ttaskstats_tgid_init() set -\u003esignal-\u003etaskstats \u003d NULL,\n\t\tthere is nothing to free.\n\nMove the callsite to __exit_signal(). We don\u0027t need any locking, entire\nthread group is exiting, nobody should have a reference to soon to be\nreleased -\u003esignal.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jay Lan \u003cjlan@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fab413a334a7b3dd2688c5cd5d4718476e430ea4",
      "tree": "2ffc4f9e97545bbd3608636abc0b4d9d4c09847c",
      "parents": [
        "1651e14e28a2d9f446018ef522882e0709a2ce4f"
      ],
      "author": {
        "name": "Cedric Le Goater",
        "email": "clg@fr.ibm.com",
        "time": "Mon Oct 02 02:18:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:21 2006 -0700"
      },
      "message": "[PATCH] namespaces: exit_task_namespaces() invalidates nsproxy\n\nexit_task_namespaces() has replaced the former exit_namespace().  It\ninvalidates task-\u003ensproxy and associated namespaces.  This is an issue for\nthe (futur) pid namespace which is required to be valid in exit_notify().\n\nThis patch moves exit_task_namespaces() after exit_notify() to keep nsproxy\nvalid.\n\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Andrey Savochkin \u003csaw@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1651e14e28a2d9f446018ef522882e0709a2ce4f",
      "tree": "401ff78624fdc4b445f3f95174a223acaf6a4ca0",
      "parents": [
        "0437eb594e6e5e699248f865482e61034be846d0"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Oct 02 02:18:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:20 2006 -0700"
      },
      "message": "[PATCH] namespaces: incorporate fs namespace into nsproxy\n\nThis moves the mount namespace into the nsproxy.  The mount namespace count\nnow refers to the number of nsproxies point to it, rather than the number of\ntasks.  As a result, the unshare_namespace() function in kernel/fork.c no\nlonger checks whether it is being shared.\n\nSigned-off-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Andrey Savochkin \u003csaw@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ab516013ad9ca47f1d3a936fa81303bfbf734d52",
      "tree": "643ea9c4c3d28958cb42dd87b1856f74edd22b11",
      "parents": [
        "b1ba4ddde0cf67991d89f039365eaaeda61aa027"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Oct 02 02:18:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:20 2006 -0700"
      },
      "message": "[PATCH] namespaces: add nsproxy\n\nThis patch adds a nsproxy structure to the task struct.  Later patches will\nmove the fs namespace pointer into this structure, and introduce a new utsname\nnamespace into the nsproxy.\n\nThe vserver and openvz functionality, then, would be implemented in large part\nby virtualizing/isolating more and more resources into namespaces, each\ncontained in the nsproxy.\n\n[akpm@osdl.org: build fix]\nSigned-off-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Andrey Savochkin \u003csaw@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8f0ab5147951267134612570604cf8341901a80c",
      "tree": "d394edb3ab69396128e7971136f05fd71d863ece",
      "parents": [
        "9acc1853519a0473620d424105f9d49ea5b4e62e"
      ],
      "author": {
        "name": "Jay Lan",
        "email": "jlan@engr.sgi.com",
        "time": "Sat Sep 30 23:28:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:29 2006 -0700"
      },
      "message": "[PATCH] csa: convert CONFIG tag for extended accounting routines\n\nThere were a few accounting data/macros that are used in CSA but are #ifdef\u0027ed\ninside CONFIG_BSD_PROCESS_ACCT.  This patch is to change those ifdef\u0027s from\nCONFIG_BSD_PROCESS_ACCT to CONFIG_TASK_XACCT.  A few defines are moved from\nkernel/acct.c and include/linux/acct.h to kernel/tsacct.c and\ninclude/linux/tsacct_kern.h.\n\nSigned-off-by: Jay Lan \u003cjlan@sgi.com\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jes Sorensen \u003cjes@sgi.com\u003e\nCc: Chris Sturtivant \u003ccsturtiv@sgi.com\u003e\nCc: Tony Ernst \u003ctee@sgi.com\u003e\nCc: Guillaume Thouvenin \u003cguillaume.thouvenin@bull.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0d67a46df0125e20d14f12dbd3646f1f1bf23e8c",
      "tree": "8e823eedbc068e3a1ed3a4af6696a43a48fffa0a",
      "parents": [
        "cf9a2ae8d49948f861b56e5333530e491a9da190"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 29 19:05:56 2006 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:31:20 2006 +0200"
      },
      "message": "[PATCH] BLOCK: Remove duplicate declaration of exit_io_context() [try #6]\n\nRemove the duplicate declaration of exit_io_context() from linux/sched.h.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "c394cc9fbb367f87faa2228ec2eabacd2d4701c6",
      "tree": "2177214ac92b3a7ac21cb2632786c9de728c3868",
      "parents": [
        "55a101f8f71a3d3dbda7b5c77083ffe47552f831"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Sep 29 02:01:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:21 2006 -0700"
      },
      "message": "[PATCH] introduce TASK_DEAD state\n\nI am not sure about this patch, I am asking Ingo to take a decision.\n\ntask_struct-\u003estate \u003d\u003d EXIT_DEAD is a very special case, to avoid a confusion\nit makes sense to introduce a new state, TASK_DEAD, while EXIT_DEAD should\nlive only in -\u003eexit_state as documented in sched.h.\n\nNote that this state is not visible to user-space, get_task_state() masks off\nunsuitable states.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "55a101f8f71a3d3dbda7b5c77083ffe47552f831",
      "tree": "52706df201efd82d09bed39562502b4caa357af4",
      "parents": [
        "29b884921634e1e01cbd276e1c9b8fc07a7e4a90"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Sep 29 02:01:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:20 2006 -0700"
      },
      "message": "[PATCH] kill PF_DEAD flag\n\nAfter the previous change (-\u003eflags \u0026 PF_DEAD) \u003c\u003d\u003e (-\u003estate \u003d\u003d EXIT_DEAD), we\ndon\u0027t need PF_DEAD any longer.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "29b884921634e1e01cbd276e1c9b8fc07a7e4a90",
      "tree": "951fce8626715b1ad26ca81bec9002cfcb8242af",
      "parents": [
        "e8106b941ceab68cc5ff713df7b1276484554584"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Sep 29 02:01:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:20 2006 -0700"
      },
      "message": "[PATCH] set EXIT_DEAD state in do_exit(), not in schedule()\n\nschedule() checks PF_DEAD on every context switch and sets -\u003estate \u003d EXIT_DEAD\nto ensure that the exiting task will be deactivated.  Note that this EXIT_DEAD\nis in fact a \"random\" value, we can use any bit except normal TASK_XXX values.\n\nIt is better to set this state in do_exit() along with PF_DEAD flag and remove\nthat check in schedule().\n\nWe are safe wrt concurrent try_to_wake_up() (for example ptrace, tkill), it\ncan not change task\u0027s -\u003estate: the \u0027state\u0027 argument of try_to_wake_up() can\u0027t\nhave EXIT_DEAD bit.  And in case when try_to_wake_up() sees a stale value of\n-\u003estate \u003d\u003d TASK_RUNNING it will do nothing.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1c573afebc6213e4372e0d8352034c23d5262e1f",
      "tree": "89741782e842fcbe8d499cb0d07de818d37893eb",
      "parents": [
        "8dc3e9099e01dfdd53f27f329c268eced03dfef6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Sep 29 02:00:51 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:18 2006 -0700"
      },
      "message": "[PATCH] reparent_to_init(): use has_rt_policy()\n\nRemove open-coded has_rt_policy(), no changes in kernel/exit.o\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "54306cf04c0ea0a8c432603dbc657ab62a438668",
      "tree": "da60e18bfdc89803255c02c026e065c144e43a96",
      "parents": [
        "3cfd0885fac78c130a119ed576d18b5948fa2a5a"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Sep 29 02:00:42 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:16 2006 -0700"
      },
      "message": "[PATCH] exit: fix crash case\n\nIf we are going to BUG() not panic() here then we should cover the case of\nthe BUG being compiled out\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b9ecb2bd5d3ab8904752685696cb76aac1f3fef2",
      "tree": "e831f310301d68bb16c0df0efca05a8045c9bb0b",
      "parents": [
        "fb50ae7446abb35184be029c51f825e45a4e0670"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Sep 29 02:00:31 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:15 2006 -0700"
      },
      "message": "[PATCH] has_stopped_jobs() cleanup\n\nThis check has been obsolete since the introduction of TASK_TRACED.  Now\nTASK_STOPPED always means job control stop.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f400e198b2ed26ce55b22a1412ded0896e7516ac",
      "tree": "a3d78bfc1c20635e199fe0fe85aaa1d8792acc58",
      "parents": [
        "959ed340f4867fda7684340625f60e211c2296d6"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Fri Sep 29 02:00:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:12 2006 -0700"
      },
      "message": "[PATCH] pidspace: is_init()\n\nThis is an updated version of Eric Biederman\u0027s is_init() patch.\n(http://lkml.org/lkml/2006/2/6/280).  It applies cleanly to 2.6.18-rc3 and\nreplaces a few more instances of -\u003epid \u003d\u003d 1 with is_init().\n\nFurther, is_init() checks pid and thus removes dependency on Eric\u0027s other\npatches for now.\n\nEric\u0027s original description:\n\n\tThere are a lot of places in the kernel where we test for init\n\tbecause we give it special properties.  Most  significantly init\n\tmust not die.  This results in code all over the kernel test\n\t-\u003epid \u003d\u003d 1.\n\n\tIntroduce is_init to capture this case.\n\n\tWith multiple pid spaces for all of the cases affected we are\n\tlooking for only the first process on the system, not some other\n\tprocess that has pid \u003d\u003d 1.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \u003clxc-devel@lists.sourceforge.net\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3b9b8ab65d8eed784b9164d03807cb2bda7b5cd6",
      "tree": "104c7b01768acd7e152cbf66e4868a73804e8af9",
      "parents": [
        "fc09561d6392771a392dea55c287de7e849b6b63"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Fri Sep 29 02:00:05 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:12 2006 -0700"
      },
      "message": "[PATCH] Fix unserialized task-\u003efiles changing\n\nFixed race on put_files_struct on exec with proc.  Restoring files on\ncurrent on error path may lead to proc having a pointer to already kfree-d\nfiles_struct.\n\n-\u003efiles changing at exit.c and khtread.c are safe as exit_files() makes all\nthings under lock.\n\nFound during OpenVZ stress testing.\n\n[akpm@osdl.org: add export]\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3b6362b833b9f7a9d4222cf1bb35f99c411abb31",
      "tree": "b72c39577b6a5d50cda735c43213158118c8f7e4",
      "parents": [
        "d738752fc46c4cc339bc66346cf6134446ce08db"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sat Sep 02 21:22:16 2006 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 02 14:51:27 2006 -0700"
      },
      "message": "[PATCH] eligible_child: remove an obsolete -\u003etgid check\n\nIt is not possible to find a sub-thread in -\u003echildren/-\u003eptrace_children\nlists, ptrace_attach() does not allow to attach to sub-threads.\n\nEven if it was possible to ptrace the task from the same thread group,\nwe can\u0027t allow to release -\u003egroup_leader while there are others (ptracer)\nthreads in the same group.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "35df17c57cecb08f0120fb18926325f1093dc429",
      "tree": "dc79780b3133e55dc591e35238fdb313e8e0219e",
      "parents": [
        "30f3174d1c506db2c6d2c1dddc9c064e741d6b76"
      ],
      "author": {
        "name": "Shailabh Nagar",
        "email": "nagar@watson.ibm.com",
        "time": "Thu Aug 31 21:27:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 01 11:39:08 2006 -0700"
      },
      "message": "[PATCH] task delay accounting fixes\n\nCleanup allocation and freeing of tsk-\u003edelays used by delay accounting.\nThis solves two problems reported for delay accounting:\n\n1. oops in __delayacct_blkio_ticks\nhttp://www.uwsg.indiana.edu/hypermail/linux/kernel/0608.2/1844.html\n\nCurrently tsk-\u003edelays is getting freed too early in task exit which can\ncause a NULL tsk-\u003edelays to get accessed via reading of /proc/\u003ctgid\u003e/stats.\n The patch fixes this problem by freeing tsk-\u003edelays closer to when\ntask_struct itself is freed up.  As a result, it also eliminates the use of\ntsk-\u003edelays_lock which was only being used (inadequately) to safeguard\naccess to tsk-\u003edelays while a task was exiting.\n\n2. Possible memory leak in kernel/delayacct.c\nhttp://www.uwsg.indiana.edu/hypermail/linux/kernel/0608.2/1389.html\n\nThe patch cleans up tsk-\u003edelays allocations after a bad fork which was\nmissing earlier.\n\nThe patch has been tested to fix the problems listed above and stress\ntested with rapid calls to delay accounting\u0027s taskstats command interface\n(which is the other path that can access the same data, besides the /proc\ninterface causing the oops above).\n\nSigned-off-by: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f9fd8914c1acca0d98b69d831b128d5b52f03c51",
      "tree": "18c2506bb31e49a9e2c4a483d37b0394c815fe9d",
      "parents": [
        "c8924363da07aec213e5d359f23eeae1fff91951"
      ],
      "author": {
        "name": "Shailabh Nagar",
        "email": "nagar@watson.ibm.com",
        "time": "Fri Jul 14 00:24:47 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:57 2006 -0700"
      },
      "message": "[PATCH] per-task delay accounting taskstats interface: control exit data through cpumasks\n\nOn systems with a large number of cpus, with even a modest rate of tasks\nexiting per cpu, the volume of taskstats data sent on thread exit can\noverflow a userspace listener\u0027s buffers.\n\nOne approach to avoiding overflow is to allow listeners to get data for a\nlimited and specific set of cpus.  By scaling the number of listeners\nand/or the cpus they monitor, userspace can handle the statistical data\noverload more gracefully.\n\nIn this patch, each listener registers to listen to a specific set of cpus\nby specifying a cpumask.  The interest is recorded per-cpu.  When a task\nexits on a cpu, its taskstats data is unicast to each listener interested\nin that cpu.\n\nThanks to Andrew Morton for pointing out the various scalability and\ngeneral concerns of previous attempts and for suggesting this design.\n\n[akpm@osdl.org: build fix]\nSigned-off-by: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ad4ecbcba72855a2b5319b96e2a3a65ed1ca3bfd",
      "tree": "a2f5b98598948525de77ab594e4432f09a230388",
      "parents": [
        "25890454667b3295f67b3372352be90705f8667c"
      ],
      "author": {
        "name": "Shailabh Nagar",
        "email": "nagar@watson.ibm.com",
        "time": "Fri Jul 14 00:24:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:57 2006 -0700"
      },
      "message": "[PATCH] delay accounting taskstats interface send tgid once\n\nSend per-tgid data only once during exit of a thread group instead of once\nwith each member thread exit.\n\nCurrently, when a thread exits, besides its per-tid data, the per-tgid data\nof its thread group is also sent out, if its thread group is non-empty.\nThe per-tgid data sent consists of the sum of per-tid stats for all\n*remaining* threads of the thread group.\n\nThis patch modifies this sending in two ways:\n\n- the per-tgid data is sent only when the last thread of a thread group\n  exits.  This cuts down heavily on the overhead of sending/receiving\n  per-tgid data, especially when other exploiters of the taskstats\n  interface aren\u0027t interested in per-tgid stats\n\n- the semantics of the per-tgid data sent are changed.  Instead of being\n  the sum of per-tid data for remaining threads, the value now sent is the\n  true total accumalated statistics for all threads that are/were part of\n  the thread group.\n\nThe patch also addresses a minor issue where failure of one accounting\nsubsystem to fill in the taskstats structure was causing the send of\ntaskstats to not be sent at all.\n\nThe patch has been tested for stability and run cerberus for over 4 hours\non an SMP.\n\n[akpm@osdl.org: bugfixes]\nSigned-off-by: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c757249af152c59fd74b85e52e8c090acb33d9c0",
      "tree": "78495f661fe537bf5087b24e6577659de8725b5a",
      "parents": [
        "fb0ba6bd021248b6bdc58a7b1213a55a6776a38a"
      ],
      "author": {
        "name": "Shailabh Nagar",
        "email": "nagar@watson.ibm.com",
        "time": "Fri Jul 14 00:24:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:56 2006 -0700"
      },
      "message": "[PATCH] per-task-delay-accounting: taskstats interface\n\nCreate a \"taskstats\" interface based on generic netlink (NETLINK_GENERIC\nfamily), for getting statistics of tasks and thread groups during their\nlifetime and when they exit.  The interface is intended for use by multiple\naccounting packages though it is being created in the context of delay\naccounting.\n\nThis patch creates the interface without populating the fields of the data\nthat is sent to the user in response to a command or upon the exit of a task.\nEach accounting package interested in using taskstats has to provide an\nadditional patch to add its stats to the common structure.\n\n[akpm@osdl.org: cleanups, Kconfig fix]\nSigned-off-by: Shailabh Nagar \u003cnagar@us.ibm.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jes Sorensen \u003cjes@sgi.com\u003e\nCc: Peter Chubb \u003cpeterc@gelato.unsw.edu.au\u003e\nCc: Erich Focht \u003cefocht@ess.nec.de\u003e\nCc: Levent Serinol \u003clserinol@gmail.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ca74e92b4698276b6696f15a801759f50944f387",
      "tree": "26f0de66d8207608e07ee22389bfc173e773c0c2",
      "parents": [
        "e8f4d97e1b58b50ad6449bb2d35e6632c0236abd"
      ],
      "author": {
        "name": "Shailabh Nagar",
        "email": "nagar@watson.ibm.com",
        "time": "Fri Jul 14 00:24:36 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:56 2006 -0700"
      },
      "message": "[PATCH] per-task-delay-accounting: setup\n\nInitialization code related to collection of per-task \"delay\" statistics which\nmeasure how long it had to wait for cpu, sync block io, swapping etc.  The\ncollection of statistics and the interface are in other patches.  This patch\nsets up the data structures and allows the statistics collection to be\ndisabled through a kernel boot parameter.\n\nSigned-off-by: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jes Sorensen \u003cjes@sgi.com\u003e\nCc: Peter Chubb \u003cpeterc@gelato.unsw.edu.au\u003e\nCc: Erich Focht \u003cefocht@ess.nec.de\u003e\nCc: Levent Serinol \u003clserinol@gmail.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "36c8b586896f60cb91a4fd526233190b34316baf",
      "tree": "003246e1e676de33703daa979b3e3109ca202a89",
      "parents": [
        "48f24c4da1ee7f3f22289cb85e8b8a73e4df4db5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:11 2006 -0700"
      },
      "message": "[PATCH] sched: cleanup, remove task_t, convert to struct task_struct\n\ncleanup: remove task_t and convert all the uses to struct task_struct. I\nintroduced it for the scheduler anno and it was a mistake.\n\nConversion was mostly scripted, the result was reviewed and all\nsecondary whitespace and style impact (if any) was fixed up by hand.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a11b49a805665e13a56aa067afaf81d43ec1514",
      "tree": "bf499956e3f67d1211d68ab1e2eb76645f453dfb",
      "parents": [
        "fb7e42413a098cc45b3adf858da290033af62bae"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:01 2006 -0700"
      },
      "message": "[PATCH] lockdep: better lock debugging\n\nGeneric lock debugging:\n\n - generalized lock debugging framework. For example, a bug in one lock\n   subsystem turns off debugging in all lock subsystems.\n\n - got rid of the caller address passing (__IP__/__IP_DECL__/etc.) from\n   the mutex/rtmutex debugging code: it caused way too much prototype\n   hackery, and lockdep will give the same information anyway.\n\n - ability to do silent tests\n\n - check lock freeing in vfree too.\n\n - more finegrained debugging options, to allow distributions to\n   turn off more expensive debugging features.\n\nThere\u0027s no separate \u0027held mutexes\u0027 list anymore - but there\u0027s a \u0027held locks\u0027\nstack within lockdep, which unifies deadlock detection across all lock\nclasses.  (this is independent of the lockdep validation stuff - lockdep first\nchecks whether we are holding a lock already)\n\nHere are the current debugging options:\n\nCONFIG_DEBUG_MUTEXES\u003dy\nCONFIG_DEBUG_LOCK_ALLOC\u003dy\n\nwhich do:\n\n config DEBUG_MUTEXES\n          bool \"Mutex debugging, basic checks\"\n\n config DEBUG_LOCK_ALLOC\n         bool \"Detect incorrect freeing of live mutexes\"\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "c87e2837be82df479a6bae9f155c43516d2feebc",
      "tree": "ad6ab35f0b78f71abaa7b05185e9e3f97809c6de",
      "parents": [
        "0cdbee9920fb37eb2dc49b860c2b28862d647adc"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:54:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:47 2006 -0700"
      },
      "message": "[PATCH] pi-futex: futex_lock_pi/futex_unlock_pi support\n\nThis adds the actual pi-futex implementation, based on rt-mutexes.\n\n[dino@in.ibm.com: fix an oops-causing race]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Dinakar Guniguntala \u003cdino@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e7eebaf6a81b956c989f184ee4b27277c88f8afe",
      "tree": "25adcfb17ec5f857791557a874cc1cced390ca9f",
      "parents": [
        "a6537be9324c67b41f6d98f5a60a1bd5a8e02861"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:54:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:47 2006 -0700"
      },
      "message": "[PATCH] pi-futex: rt mutex debug\n\nRuntime debugging functionality for rt-mutexes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "48e6484d49020dba3578ad117b461e8a391e8f0f",
      "tree": "7824ca84bfe71c3fe2c09a1fedc31106fec4f500",
      "parents": [
        "662795deb854b31501e0ffb42b7f0cce802c134a"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:24 2006 -0700"
      },
      "message": "[PATCH] proc: Rewrite the proc dentry flush on exit optimization\n\nTo keep the dcache from filling up with dead /proc entries we flush them on\nprocess exit.  However over the years that code has gotten hairy with a\ndentry_pointer and a lock in task_struct and misdocumented as a correctness\nfeature.\n\nI have rewritten this code to look and see if we have a corresponding entry in\nthe dcache and if so flush it on process exit.  This removes the extra fields\nin the task_struct and allows me to trivially handle the case of a\n/proc/\u003ctgid\u003e/task/\u003cpid\u003e entry as well as the current /proc/\u003cpid\u003e entries.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "f6ec29a42d7ac3b309a9cef179b686d23986ab98"
}
