)]}'
{
  "commit": "424d66cedae8bebb00fdb917fc8430f7b8a655cf",
  "tree": "cd232df29974be404978d47a2257c9422272d304",
  "parents": [
    "b6d9c125e6610591c04ca9045f641e35ce1a9226"
  ],
  "author": {
    "name": "Stefan Richter",
    "email": "stefanr@s5r6.in-berlin.de",
    "time": "Thu Jul 22 11:56:38 2010 +0200"
  },
  "committer": {
    "name": "Stefan Richter",
    "email": "stefanr@s5r6.in-berlin.de",
    "time": "Tue Jul 27 11:04:11 2010 +0200"
  },
  "message": "firewire: nosy: fix device shutdown with active client\n\nFix race between nosy_open() and remove_card() by replacing the\nunprotected array of card pointers by a mutex-protected list of cards.\n\nMake card instances reference-counted and let each client hold a\nreference.\n\nNotify clients about card removal via POLLHUP in poll()\u0027s events\nbitmap; also let read() fail with errno\u003dENODEV if the card was removed\nand everything in the buffer was read.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ccf9c461bd8636bcdfe3d4e4d1773b36a9ebe111",
      "old_mode": 33188,
      "old_path": "drivers/firewire/nosy.c",
      "new_id": "edd729aafecaf897c06615d8e9fab56ca77ca520",
      "new_mode": 33188,
      "new_path": "drivers/firewire/nosy.c"
    }
  ]
}
