)]}'
{
  "commit": "77a23c21aaa723f6b0ffc4a701be8c8e5a32346d",
  "tree": "5b51b8299a8deede4c91dffde032899ab76e331a",
  "parents": [
    "218432c68085d6c2b04df57daaf105d2ffa2aa61"
  ],
  "author": {
    "name": "Mike Christie",
    "email": "michaelc@cs.wisc.edu",
    "time": "Wed May 30 12:57:18 2007 -0500"
  },
  "committer": {
    "name": "James Bottomley",
    "email": "jejb@mulgrave.il.steeleye.com",
    "time": "Sat Jun 02 15:34:14 2007 -0400"
  },
  "message": "[SCSI] libiscsi: fix iscsi cmdsn allocation\n\nThe cmdsn allocation and pdu transmit code can race, and we can end\nup sending a pdu with cmdsn 10 before a pdu with 5. The target will\nthen fail the connection/session. This patch fixes the problem by\ndelaying the cmdsn allocation until we are about to send the pdu.\n\nThis also removes the xmitmutex. We were using the connection xmitmutex\nduring error handling to handle races with mtask and ctask cleanup and\ncompletion. For ctasks we now have nice refcounting and for the mtask,\nif we hit the case where the mtask timesout and it is floating\naround somewhere in the driver, we end up dropping the session.\nAnd to handle session level cleanup, we use the xmit suspend bit\nalong with scsi_flush_queue and the session lock to make sure\nthat the xmit thread is not possibly transmitting a task while\nwe are trying to kill it.\n\nSigned-off-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Roland Dreier \u003crdreier@cisco.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6c8cd09c58f0019ff8f0856840c855460c41e1bb",
      "old_mode": 33188,
      "old_path": "drivers/infiniband/ulp/iser/iscsi_iser.c",
      "new_id": "9782190a9ee58de36e975666b0b4b4e5653036ae",
      "new_mode": 33188,
      "new_path": "drivers/infiniband/ulp/iser/iscsi_iser.c"
    },
    {
      "type": "modify",
      "old_id": "0afdca2224c2825f63f76f011994c8e554f4b05f",
      "old_mode": 33188,
      "old_path": "drivers/scsi/iscsi_tcp.c",
      "new_id": "8edcfddc0bafc99269d971daf3b7dae7fa1a414c",
      "new_mode": 33188,
      "new_path": "drivers/scsi/iscsi_tcp.c"
    },
    {
      "type": "modify",
      "old_id": "63f0a15d9887e5bb958ab70ccf572e91d9ed9bc8",
      "old_mode": 33188,
      "old_path": "drivers/scsi/libiscsi.c",
      "new_id": "938f527cd81a1a13f952b19080ca826922021dd6",
      "new_mode": 33188,
      "new_path": "drivers/scsi/libiscsi.c"
    },
    {
      "type": "modify",
      "old_id": "61bc8f75b267c286729916f41bb85755a713fe07",
      "old_mode": 33188,
      "old_path": "include/scsi/libiscsi.h",
      "new_id": "8d48cf8f2e3fdfe6ee5fc95468013d74a27c6a4d",
      "new_mode": 33188,
      "new_path": "include/scsi/libiscsi.h"
    },
    {
      "type": "modify",
      "old_id": "1ac450b0690912ff258cc06db0c9e3279a0170e8",
      "old_mode": 33188,
      "old_path": "include/scsi/scsi_transport_iscsi.h",
      "new_id": "abc4068621d834eead338ecc4a912455b8a606ea",
      "new_mode": 33188,
      "new_path": "include/scsi/scsi_transport_iscsi.h"
    }
  ]
}
