)]}'
{
  "commit": "bb992e72f9b751fceb04afeb7736b6a3e50effcf",
  "tree": "432d59d06184a8909b4e43e0ae9fdb0dd4bdf1ed",
  "parents": [
    "33633676df0d16d0685f2fbc571143801bc16e3b"
  ],
  "author": {
    "name": "Roland Dreier",
    "email": "roland@purestorage.com",
    "time": "Fri Feb 08 15:18:39 2013 -0800"
  },
  "committer": {
    "name": "Nicholas Bellinger",
    "email": "nab@linux-iscsi.org",
    "time": "Wed Feb 13 12:16:05 2013 -0800"
  },
  "message": "target: Fix error checking for UNMAP commands\n\nSBC-3 (revision 35) says:\n\n    The PARAMETER LIST LENGTH field specifies the length in bytes of the\n    UNMAP parameter list that is available to be transferred from the\n    Data-Out Buffer. If the parameter list length is greater than zero\n    and less than 0008h (i.e., eight), then the device server shall\n    terminate the command with CHECK CONDITION status with the sense key\n    set to ILLEGAL REQUEST and the additional sense code set to\n    PARAMETER LIST LENGTH ERROR. A PARAMETER LIST LENGTH set to zero\n    specifies that no data shall be sent.\n\nso our sense code for too-short descriptors was wrong, and we were\nincorrectly failing commands that didn\u0027t transfer any descriptors.\n\nWhile we\u0027re at it, also handle the UNMAP check:\n\n    If the ANCHOR bit is set to one, and the ANC_SUP bit in the Logical\n    Block Provisioning VPD page (see 6.6.4) is set to zero, then the\n    device server shall terminate the command with CHECK CONDITION\n    status with the sense key set to ILLEGAL REQUEST and the additional\n    sense code set to INVALID FIELD IN CDB.\n\n(chris boot: Fix wrong cut+paste comment in transport_send_check_condition_and_sense)\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Nicholas Bellinger \u003cnab@linux-iscsi.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2f74e17ad3e6e99760fff9a45ec6b4867da7594d",
      "old_mode": 33188,
      "old_path": "drivers/target/target_core_iblock.c",
      "new_id": "facee5f74fa46a3a570b534f98f85c34791926dd",
      "new_mode": 33188,
      "new_path": "drivers/target/target_core_iblock.c"
    },
    {
      "type": "modify",
      "old_id": "96b64d57ebbb9f0180ace4f2dc0b3e6f5dd1e3b8",
      "old_mode": 33188,
      "old_path": "drivers/target/target_core_transport.c",
      "new_id": "2030b608136d3cfb7dc4509105ff061a3a621e14",
      "new_mode": 33188,
      "new_path": "drivers/target/target_core_transport.c"
    },
    {
      "type": "modify",
      "old_id": "df14dce59191df42e1270918cb143ebaf02dddc9",
      "old_mode": 33188,
      "old_path": "include/target/target_core_base.h",
      "new_id": "c4af592f7057e472d8953099c56651423d0ec6ad",
      "new_mode": 33188,
      "new_path": "include/target/target_core_base.h"
    }
  ]
}
