)]}'
{
  "commit": "5dee1707dfbfc55eb7569b9ae5abaf932bd4c377",
  "tree": "6e162f61f9645f790aa14cb4146882b918bb0286",
  "parents": [
    "6806aac6d282d58b97763f5e17e2787e62c3b440"
  ],
  "author": {
    "name": "Oleg Nesterov",
    "email": "oleg@tv-sign.ru",
    "time": "Fri Feb 08 04:19:13 2008 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Fri Feb 08 09:22:27 2008 -0800"
  },
  "message": "move the related code from exit_notify() to exit_signals()\n\nThe previous bugfix was not optimal, we shouldn\u0027t care about group stop\nwhen we are the only thread or the group stop is in progress.  In that case\nnothing special is needed, just set PF_EXITING and return.\n\nAlso, take the related \"TIF_SIGPENDING re-targeting\" code from exit_notify().\n\nSo, from the performance POV the only difference is that we don\u0027t trust\n!signal_pending() until we take -\u003esiglock.  But this in fact fixes another\n___pure___ theoretical minor race.  __group_complete_signal() finds the\ntask without PF_EXITING and chooses it as the target for signal_wake_up().\nBut nothing prevents this task from exiting in between without noticing the\npending signal and thus unpredictably delaying the actual delivery.\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: 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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8f3bf53a5b4d3cf4a09b9028eba496f38b69a141",
      "old_mode": 33188,
      "old_path": "kernel/exit.c",
      "new_id": "2b332d170327763c8833da485dc93d9bec0a6b90",
      "new_mode": 33188,
      "new_path": "kernel/exit.c"
    },
    {
      "type": "modify",
      "old_id": "209eec11eef5dd0ca7662559e9988d7bcbe07056",
      "old_mode": 33188,
      "old_path": "kernel/signal.c",
      "new_id": "3d3adb94561d141b950329ea283d0e91601c6dde",
      "new_mode": 33188,
      "new_path": "kernel/signal.c"
    }
  ]
}
