)]}'
{
  "commit": "43918f2bf4806675943416d539d9d5e4d585ebff",
  "tree": "1de2ea08eed647b181b7f008f95e4bc4ec34c343",
  "parents": [
    "90bc8d8b1a38f1ab131a2399a202e1889db95de8"
  ],
  "author": {
    "name": "Oleg Nesterov",
    "email": "oleg@redhat.com",
    "time": "Thu Apr 02 16:58:00 2009 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Thu Apr 02 19:04:58 2009 -0700"
  },
  "message": "signals: remove \u0027handler\u0027 parameter to tracehook functions\n\nContainer-init must behave like global-init to processes within the\ncontainer and hence it must be immune to unhandled fatal signals from\nwithin the container (i.e SIG_DFL signals that terminate the process).\n\nBut the same container-init must behave like a normal process to processes\nin ancestor namespaces and so if it receives the same fatal signal from a\nprocess in ancestor namespace, the signal must be processed.\n\nImplementing these semantics requires that send_signal() determine pid\nnamespace of the sender but since signals can originate from workqueues/\ninterrupt-handlers, determining pid namespace of sender may not always be\npossible or safe.\n\nThis patchset implements the design/simplified semantics suggested by\nOleg Nesterov.  The simplified semantics for container-init are:\n\n\t- container-init must never be terminated by a signal from a\n\t  descendant process.\n\n\t- container-init must never be immune to SIGKILL from an ancestor\n\t  namespace (so a process in parent namespace must always be able\n\t  to terminate a descendant container).\n\n\t- container-init may be immune to unhandled fatal signals (like\n\t  SIGUSR1) even if they are from ancestor namespace. SIGKILL/SIGSTOP\n\t  are the only reliable signals to a container-init from ancestor\n\t  namespace.\n\nThis patch:\n\nBased on an earlier patch submitted by Oleg Nesterov and comments from\nRoland McGrath (http://lkml.org/lkml/2008/11/19/258).\n\nThe handler parameter is currently unused in the tracehook functions.\nBesides, the tracehook functions are called with siglock held, so the\nfunctions can check the handler if they later need to.\n\nRemoving the parameter simiplifies changes to sig_ignored() in a follow-on\npatch.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "19378715f4157b5202d823f9d751dd1f07c08b38",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/ptrace.c",
      "new_id": "b7cc21bc6ae0e43b1a3f2fb406a60cd4d005a246",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/ptrace.c"
    },
    {
      "type": "modify",
      "old_id": "6186a789d6c7a2f6d5c3ce7a3651a1db184b67ed",
      "old_mode": 33188,
      "old_path": "include/linux/tracehook.h",
      "new_id": "eb4c6545b3842885c998fa9e48957c4af6b3dc60",
      "new_mode": 33188,
      "new_path": "include/linux/tracehook.h"
    },
    {
      "type": "modify",
      "old_id": "1c8814481a117d5df731465b5a56bbf4738c48c1",
      "old_mode": 33188,
      "old_path": "kernel/signal.c",
      "new_id": "92a1ab00449818a59f85ccee75870c2e67f9a772",
      "new_mode": 33188,
      "new_path": "kernel/signal.c"
    }
  ]
}
