)]}'
{
  "commit": "d9ae90ac4bdce769ddb27c2e24c3351a30c3daf8",
  "tree": "220f88576b5c83369892ce13cb180bab6cccba7a",
  "parents": [
    "06b8e878a9bc9301201cffe186eba99c4185f20a"
  ],
  "author": {
    "name": "Oleg Nesterov",
    "email": "oleg@tv-sign.ru",
    "time": "Wed Feb 06 01:36:13 2008 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Wed Feb 06 10:41:00 2008 -0800"
  },
  "message": "use __set_task_state() for TRACED/STOPPED tasks\n\n1. It is much easier to grep for -\u003estate change if __set_task_state() is used\n   instead of the direct assignment.\n\n2. ptrace_stop() and handle_group_stop() use set_task_state() which adds the\n   unneeded mb() (btw even if we use mb() it is still possible that do_wait()\n   sees the new -\u003estate but not -\u003eexit_code, but this is ok).\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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2b55b74cd99999f1eccdedc2158d29945ab16d98",
      "old_mode": 33188,
      "old_path": "kernel/fork.c",
      "new_id": "8adfe5ddb688ec9f49a28c9eb171e2e53d700fef",
      "new_mode": 33188,
      "new_path": "kernel/fork.c"
    },
    {
      "type": "modify",
      "old_id": "b0d4ab4dfd3d27ee60e3a044f9e0bc3bba665d88",
      "old_mode": 33188,
      "old_path": "kernel/ptrace.c",
      "new_id": "74730e0c1be1a46ce08d8a753403d26b756b9d36",
      "new_mode": 33188,
      "new_path": "kernel/ptrace.c"
    },
    {
      "type": "modify",
      "old_id": "6a5f97cd337a3bc980428ea1c186efedbe991a25",
      "old_mode": 33188,
      "old_path": "kernel/signal.c",
      "new_id": "e46971560fcb8e73016c58bf83f252aed779f65d",
      "new_mode": 33188,
      "new_path": "kernel/signal.c"
    }
  ]
}
