)]}'
{
  "commit": "380af1b33b3ff92df5cda96329b58f5d1b6b5a53",
  "tree": "9a47d66c18e4aae2093a708a7509c0f188ee0bd1",
  "parents": [
    "a1193f8ec091cd8fd309cc2982abe4499f6f2b4d"
  ],
  "author": {
    "name": "Manfred Spraul",
    "email": "manfred@colorfullife.com",
    "time": "Fri Jul 25 01:48:06 2008 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Fri Jul 25 10:53:42 2008 -0700"
  },
  "message": "ipc/sem.c: rewrite undo list locking\n\nThe attached patch:\n- reverses the locking order of ulp-\u003elock and sem_lock:\n  Previously, it was first ulp-\u003elock, then inside sem_lock.\n  Now it\u0027s the other way around.\n- converts the undo structure to rcu.\n\nBenefits:\n- With the old locking order, IPC_RMID could not kfree the undo structures.\n  The stale entries remained in the linked lists and were released later.\n- The patch fixes a a race in semtimedop(): if both IPC_RMID and a semget() that\n  recreates exactly the same id happen between find_alloc_undo() and sem_lock,\n  then semtimedop() would access already kfree\u0027d memory.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nReviewed-by: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nCc: Pierre Peiffer \u003cpeifferp@gmail.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": "d42599395d7964075aff8e704565f9a636f7bf71",
      "old_mode": 33188,
      "old_path": "include/linux/sem.h",
      "new_id": "1b191c176bcd33ecfe5f16d41ff53376635e52c0",
      "new_mode": 33188,
      "new_path": "include/linux/sem.h"
    },
    {
      "type": "modify",
      "old_id": "3ca232736b3186197376e51d3b755729caf2ad34",
      "old_mode": 33188,
      "old_path": "ipc/sem.c",
      "new_id": "bf1bc36cb7ee62bc95021ba62253d5b667802952",
      "new_mode": 33188,
      "new_path": "ipc/sem.c"
    }
  ]
}
