)]}'
{
  "commit": "3bbaaad95fd38dedb7c66a601f14825b4e0c5a59",
  "tree": "1e149ff38906956227e41722947d48f289f2c488",
  "parents": [
    "4c48a82935f833d94fcf44c2b0c5d2922acfc77a"
  ],
  "author": {
    "name": "Mike Christie",
    "email": "michaelc@cs.wisc.edu",
    "time": "Wed May 13 17:57:46 2009 -0500"
  },
  "committer": {
    "name": "James Bottomley",
    "email": "James.Bottomley@HansenPartnership.com",
    "time": "Sat May 23 15:44:12 2009 -0500"
  },
  "message": "[SCSI] libiscsi: handle cleanup task races\n\nbnx2i needs to send a hardware specific cleanup command if\na command has not completed normally (iscsi/scsi response from\ntarget), and the session is still ok (this is the case when we\nsend a TMF to stop the command).\n\nAt this time it will need to drop the session lock. The problem\nwith the current code is that fail_all_commands assumes we\nwill hold the lock the entire time, so it uses list_for_each_entry_safe.\nIf while bnx2i drops the session lock multiple cmds complete then\nlist_for_each_entry_safe will not handle this correctly.\n\nThis patch removes the running lists and just has us loop over\nthe cmds array (in later patches we will then replace that\narray with a block tag map at the session level). It also fixes\nup the completion path so that if the TMF code and the normal recv\npath were completing the same command then they both do not try\nto do release the refcount taken when the task is queued.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c648bd328a219203021d3da7ba0d3511ece54728",
      "old_mode": 33188,
      "old_path": "drivers/scsi/libiscsi.c",
      "new_id": "a9d7e520e5517f92c40c0fa6d3032fe74619e6b4",
      "new_mode": 33188,
      "new_path": "drivers/scsi/libiscsi.c"
    },
    {
      "type": "modify",
      "old_id": "88d33a46efa587b221738a023d1b9354ef8973d1",
      "old_mode": 33188,
      "old_path": "include/scsi/libiscsi.h",
      "new_id": "facae71183a5adb850012e6a421ae051b20a3ccc",
      "new_mode": 33188,
      "new_path": "include/scsi/libiscsi.h"
    }
  ]
}
