)]}'
{
  "commit": "f63ee72e0fb82e504a0489490babc7612c7cd6c2",
  "tree": "85167f8016d1f746135bf1777646a58c44376af1",
  "parents": [
    "aa1757f90bea3f598b6e5d04d922a6a60200f1da"
  ],
  "author": {
    "name": "Oleg Nesterov",
    "email": "oleg@tv-sign.ru",
    "time": "Tue Mar 28 16:11:13 2006 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Tue Mar 28 18:36:42 2006 -0800"
  },
  "message": "[PATCH] introduce lock_task_sighand() helper\n\nAdd lock_task_sighand() helper and converts group_send_sig_info() to use\nit.  Hopefully we will have more users soon.\n\nThis patch also removes \u0027!sighand-\u003ecount\u0027 and \u0027!p-\u003eusage\u0027 checks, I think\nthey both are bogus, racy and unneeded (but probably it makes sense to\nrestore them as BUG_ON()s).\n\n-\u003esighand is cleared and it\u0027s -\u003ecount is decremented in release_task() with\nsighand-\u003esiglock held, so it is a bug to have \u0027!p-\u003eusage || !-\u003ecount\u0027 after\nwe already locked and verified it is the same.  On the other hand, an\nalready dead task without -\u003esighand can have a non-zero -\u003eusage due to\nptrace, for example.\n\nIf we read the stale value of -\u003esighand we must see the change after\nspin_lock(), because that change was done while holding that same old\n-\u003esighand.siglock.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bbcfc873bd98414f1d61cb38d550838c20535361",
      "old_mode": 33188,
      "old_path": "include/linux/sched.h",
      "new_id": "ca1fd31aae979b75ceb99273a4ecfd4d10f4fcf3",
      "new_mode": 33188,
      "new_path": "include/linux/sched.h"
    },
    {
      "type": "modify",
      "old_id": "b0b1ca9daa336cfd6b015d57182f06ae93e50e04",
      "old_mode": 33188,
      "old_path": "kernel/signal.c",
      "new_id": "819fa49aa70a928512afba5a0421fe35ec9ef3c8",
      "new_mode": 33188,
      "new_path": "kernel/signal.c"
    }
  ]
}
