)]}'
{
  "commit": "3e7cd6c413c9e6fbb5e1ee2acdadb4ababd2d474",
  "tree": "de97d00794ee0c787b6c551a91e33fb1faa48caa",
  "parents": [
    "0475ac0845f9295bc5f69af45f58dff2c104c8d1"
  ],
  "author": {
    "name": "Eric W. Biederman",
    "email": "ebiederm@xmission.com",
    "time": "Mon Feb 12 00:52:58 2007 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Mon Feb 12 09:48:32 2007 -0800"
  },
  "message": "[PATCH] pid: replace is_orphaned_pgrp with is_current_pgrp_orphaned\n\nEvery call to is_orphaned_pgrp passed in process_group(current) which is racy\nwith respect to another thread changing our process group.  It didn\u0027t bite us\nbecause we were dealing with integers and the worse we would get would be a\nstale answer.\n\nIn switching the checks to use struct pid to be a little more efficient and\nprepare the way for pid namespaces this race became apparent.\n\nSo I simplified the calls to the more specialized is_current_pgrp_orphaned so\nI didn\u0027t have to worry about making logic changes to avoid the race.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\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": "2bdb0144a22e3f0b4d8675826bdd0ea353ac3079",
      "old_mode": 33188,
      "old_path": "drivers/char/n_tty.c",
      "new_id": "c035c2f1f462bb6d8ad5cf4c32bc525090d15166",
      "new_mode": 33188,
      "new_path": "drivers/char/n_tty.c"
    },
    {
      "type": "modify",
      "old_id": "95f3596189cf05dbc2669ca37c89c6049bcdb19a",
      "old_mode": 33188,
      "old_path": "drivers/char/tty_io.c",
      "new_id": "94070f7bf38963845bcdd783b02ff305cc46d0c9",
      "new_mode": 33188,
      "new_path": "drivers/char/tty_io.c"
    },
    {
      "type": "modify",
      "old_id": "0a10a4e7bbc3e85e85a271e468e04e47337899a4",
      "old_mode": 33188,
      "old_path": "include/linux/tty.h",
      "new_id": "d0e03c4a71b1c5ba95859747d203c7d8986bd474",
      "new_mode": 33188,
      "new_path": "include/linux/tty.h"
    },
    {
      "type": "modify",
      "old_id": "407b80aaefdaf97af054f2e1bb54d6b8bed00cf9",
      "old_mode": 33188,
      "old_path": "kernel/exit.c",
      "new_id": "f132349c032569c94d4b3cd710b0c74fe8d0eec5",
      "new_mode": 33188,
      "new_path": "kernel/exit.c"
    },
    {
      "type": "modify",
      "old_id": "de66def71644214836e03ed0b94f9936ab61856f",
      "old_mode": 33188,
      "old_path": "kernel/signal.c",
      "new_id": "a9b679ed795c1610e1575165876c97c1ba4575ac",
      "new_mode": 33188,
      "new_path": "kernel/signal.c"
    }
  ]
}
