)]}'
{
  "commit": "add0d4dfd660e9e4fd0af3eac3cad23583c9558f",
  "tree": "8bba7c39efcd5999c0925bed083a0ca68d6a5e40",
  "parents": [
    "e385ea63f44b475e034a78b6d8bc6bb50caf72ca"
  ],
  "author": {
    "name": "Oleg Nesterov",
    "email": "oleg@tv-sign.ru",
    "time": "Tue Sep 02 14:35:48 2008 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Tue Sep 02 19:21:38 2008 -0700"
  },
  "message": "pid_ns: zap_pid_ns_processes: fix the -\u003echild_reaper changing\n\nzap_pid_ns_processes() sets pid_ns-\u003echild_reaper \u003d NULL, this is wrong.\n\nYes, we have already killed all tasks in this namespace, and sys_wait4()\ndoesn\u0027t see any child.  But this doesn\u0027t mean -\u003echildren list is empty, we\nmay have EXIT_DEAD tasks which are not visible to do_wait().  In that case\nthe subsequent forget_original_parent() will crash the kernel because it\nwill try to re-parent these tasks to the NULL reaper.\n\nEven if there are no childs, it is not good that forget_original_parent()\nuses reaper \u003d\u003d NULL.\n\nChange the code to set -\u003echild_reaper \u003d init_pid_ns.child_reaper instead.\nWe could use pid_ns-\u003eparent-\u003echild_reaper as well, I think this does not\nreally matter.  These EXIT_DEAD tasks are not visible to the new -\u003eparent\nafter re-parenting, they will silently do release_task() eventually.\n\nNote that we must change -\u003echild_reaper, otherwise\nforget_original_parent() will use reaper \u003d\u003d father, and in that case we\nwill hit the (correct) BUG_ON(!list_empty(\u0026father-\u003echildren)).\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ea567b78d1aa6111bf207ac0556ff1e35b088794",
      "old_mode": 33188,
      "old_path": "kernel/pid_namespace.c",
      "new_id": "598f1eec9826a929e40f142b3dffe1a69d8d28e9",
      "new_mode": 33188,
      "new_path": "kernel/pid_namespace.c"
    }
  ]
}
