)]}'
{
  "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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c21a8cc0627709db512597ff2af82ab7c094e67d",
      "old_mode": 33188,
      "old_path": "fs/exec.c",
      "new_id": "073b0b8c6d055a3fd947f16fbdbe5552a6bc34c8",
      "new_mode": 33188,
      "new_path": "fs/exec.c"
    },
    {
      "type": "modify",
      "old_id": "a8e293d3003432ff493eff7069f32305fa35006a",
      "old_mode": 33188,
      "old_path": "fs/signalfd.c",
      "new_id": "aefb0be07942d735de747ad8697834368f8a907a",
      "new_mode": 33188,
      "new_path": "fs/signalfd.c"
    },
    {
      "type": "modify",
      "old_id": "cab741c2d6033ad937b761852def3fbbf60b763b",
      "old_mode": 33188,
      "old_path": "include/linux/init_task.h",
      "new_id": "f8abfa349ef924344a11b1fd9739e68bd4d72b24",
      "new_mode": 33188,
      "new_path": "include/linux/init_task.h"
    },
    {
      "type": "modify",
      "old_id": "3de79016f2a669dbbb5bd16395d3458032be2b86",
      "old_mode": 33188,
      "old_path": "include/linux/sched.h",
      "new_id": "a01ac6dd5f5e1c07d9a54a8f879512db2eac3905",
      "new_mode": 33188,
      "new_path": "include/linux/sched.h"
    },
    {
      "type": "modify",
      "old_id": "5104294956906c038e4359ab4e37c35632e2e478",
      "old_mode": 33188,
      "old_path": "include/linux/signalfd.h",
      "new_id": "4c9ff0910ae01d39f691a23c9acf5d1db48b06d2",
      "new_mode": 33188,
      "new_path": "include/linux/signalfd.h"
    },
    {
      "type": "modify",
      "old_id": "06b24b3aa370c69577012023b12573d4c7624d19",
      "old_mode": 33188,
      "old_path": "kernel/exit.c",
      "new_id": "993369ee94d1ebb8d4c7675a821e90abf8a1737e",
      "new_mode": 33188,
      "new_path": "kernel/exit.c"
    },
    {
      "type": "modify",
      "old_id": "7332e236d3676153dc9f40c1a78848e6e2810632",
      "old_mode": 33188,
      "old_path": "kernel/fork.c",
      "new_id": "33f12f48684a0053a82d72506c1d7ec1e7ca6a15",
      "new_mode": 33188,
      "new_path": "kernel/fork.c"
    },
    {
      "type": "modify",
      "old_id": "3169bed0b4d0e44166b37c48ed663d516a9ccba5",
      "old_mode": 33188,
      "old_path": "kernel/signal.c",
      "new_id": "9fb91a32eddaddfd47d09cb0aa66586a5635a39e",
      "new_mode": 33188,
      "new_path": "kernel/signal.c"
    }
  ]
}
