)]}'
{
  "commit": "3e148c79938aa39035669c1cfa3ff60722134535",
  "tree": "0effb3edfece56ea38a9727ec8f4721d9a4c3ea8",
  "parents": [
    "f4566f04854d78acfc74b9acb029744acde9d033"
  ],
  "author": {
    "name": "Nadia Derbey",
    "email": "Nadia.Derbey@bull.net",
    "time": "Thu Oct 18 23:40:54 2007 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Fri Oct 19 11:53:48 2007 -0700"
  },
  "message": "fix idr_find() locking\n\nThis is a patch that fixes the way idr_find() used to be called in ipc_lock():\nin all the paths that don\u0027t imply an update of the ipcs idr, it was called\nwithout the idr tree being locked.\n\nThe changes are:\n  . in ipc_ids, the mutex has been changed into a reader/writer semaphore.\n  . ipc_lock() now takes the mutex as a reader during the idr_find().\n  . a new routine ipc_lock_down() has been defined: it doesn\u0027t take the\n    mutex, assuming that it is being held by the caller. This is the routine\n    that is now called in all the update paths.\n\nSigned-off-by: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nAcked-by: Jarek Poplawski \u003cjarkao2@o2.pl\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": "b7274dbf0917f3c1da7efdd10d6b2d8e6ada80fb",
      "old_mode": 33188,
      "old_path": "ipc/msg.c",
      "new_id": "413bf9c7aec37ebfec86fafc45c0a927587b35c7",
      "new_mode": 33188,
      "new_path": "ipc/msg.c"
    },
    {
      "type": "modify",
      "old_id": "45c7e573c2016f2da63ee6437a6f763ccbc24bca",
      "old_mode": 33188,
      "old_path": "ipc/sem.c",
      "new_id": "019e21332dd6f4055f1e129e971d78bbadccc0b8",
      "new_mode": 33188,
      "new_path": "ipc/sem.c"
    },
    {
      "type": "modify",
      "old_id": "f28f2a3163e12265bc3040645ca2f5dc7c0fc28f",
      "old_mode": 33188,
      "old_path": "ipc/shm.c",
      "new_id": "b27d31f3aabac51493d55c02b55ab545adcf955c",
      "new_mode": 33188,
      "new_path": "ipc/shm.c"
    },
    {
      "type": "modify",
      "old_id": "fd29246dc3c8ae1b6869f7ec3a8787c98d042ae2",
      "old_mode": 33188,
      "old_path": "ipc/util.c",
      "new_id": "b42fbd58973a02f2d59a29204a23c5323bcd960c",
      "new_mode": 33188,
      "new_path": "ipc/util.c"
    },
    {
      "type": "modify",
      "old_id": "99414a36a2504e42d4745b184247537e1777d539",
      "old_mode": 33188,
      "old_path": "ipc/util.h",
      "new_id": "bd47687077e08beb6f862e6a81c4ddc08261c83a",
      "new_mode": 33188,
      "new_path": "ipc/util.h"
    }
  ]
}
