)]}'
{
  "commit": "a64358db1253b35d508a411e80a3ad23b859ec88",
  "tree": "e222f3f17d6962a84d966620485d19f67d7fafa7",
  "parents": [
    "b95be99d52ce4f9db9ff0bd5f10e9e2066da6d2e"
  ],
  "author": {
    "name": "Alan Stern",
    "email": "stern@rowland.harvard.edu",
    "time": "Tue Jul 26 10:27:10 2005 -0400"
  },
  "committer": {
    "name": "James Bottomley",
    "email": "jejb@titanic.(none)",
    "time": "Sun Sep 18 15:22:06 2005 -0500"
  },
  "message": "[SCSI] SCSI scanning and removal fixes\n\nThis patch (as545) fixes the list traversals in __scsi_remove_target and\nscsi_forget_host.  In each case the existing code list_for_each_entry_safe\nin an _unsafe_ manner, because the list was not protected from outside\nmodification while the iteration was running.\n\nThe new scsi_forget_host routine takes the moderately controversial step\nof iterating over devices for removal rather than iterating over targets.\nThis makes more sense to me because the current scheme treats targets as\nsecond-class citizens, created and removed on demand, rather than as\nobjects corresponding to actual hardware.  (Also I couldn\u0027t figure out any\nsafe way to iterate over the target list, since it\u0027s not so easy to tell\nwhen a target has already been removed.)\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b86f170fa8ed5a4dafbbd65bb1b3293ea9de21e8",
      "old_mode": 33188,
      "old_path": "drivers/scsi/scsi_scan.c",
      "new_id": "fcf9f6cbb142d3675b295a2ffc04f3d4ada94c41",
      "new_mode": 33188,
      "new_path": "drivers/scsi/scsi_scan.c"
    },
    {
      "type": "modify",
      "old_id": "83f87c41b18d6fdf39f7d96806ef71ef16e794b8",
      "old_mode": 33188,
      "old_path": "drivers/scsi/scsi_sysfs.c",
      "new_id": "1e47b7eddef4e57e989b82b977547013d2900122",
      "new_mode": 33188,
      "new_path": "drivers/scsi/scsi_sysfs.c"
    }
  ]
}
