)]}'
{
  "commit": "aa9fffbe2c4db4557248c5c626a85bf3c7867044",
  "tree": "e719a15e185a35f09e489a5a9f2a72d73c598dd1",
  "parents": [
    "eff21490c91f981126f0ead3c081dde4f425d387"
  ],
  "author": {
    "name": "Boaz Harrosh",
    "email": "bharrosh@panasas.com",
    "time": "Mon Nov 16 20:48:38 2009 +0200"
  },
  "committer": {
    "name": "James Bottomley",
    "email": "James.Bottomley@suse.de",
    "time": "Fri Dec 04 12:01:47 2009 -0600"
  },
  "message": "[SCSI] libosd: Error handling revamped\n\nAdminister some love to the osd_req_decode_sense function\n\n* Fix a bad bug with osd_req_decode_sense(). If there was no scsi\n  residual, .i.e the request never reached the target, then all the\n  osd_sense_info members where garbage.\n\n* Add grossly missing in/out_resid to osd_sense_info and fill them in\n  properly.\n\n* Define an osd_err_priority enum which divides the possible errors into\n  7 categories in ascending severity. Each category is also assigned a\n  Linux return code translation.\n\n  Analyze the different osd/scsi/block returned errors and set the\n  proper osd_err_priority and Linux return code accordingly.\n\n* extra check a few situations so not to get stuck with inconsistent\n  error view. Example an empty residual with an error code, and other\n  places ...\n\nLots of libosd\u0027s osd_req_decode_sense clients had this logic in some\nform or another. Consolidate all these into one place that should\nactually know about osd returns. Thous translating it to a more\nabstract error.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ba25b1e58a6c5a166a6b1509943ead9dd0f4a6a7",
      "old_mode": 33188,
      "old_path": "drivers/scsi/osd/osd_initiator.c",
      "new_id": "950202a70bcf5ea236924edaad5cf35734bfc4cf",
      "new_mode": 33188,
      "new_path": "drivers/scsi/osd/osd_initiator.c"
    },
    {
      "type": "modify",
      "old_id": "3ec346e15ddad8cb6027b630ff8c056dd21d87ea",
      "old_mode": 33188,
      "old_path": "include/scsi/osd_initiator.h",
      "new_id": "39d6d1097153952a7eb9ffb36cfcd1d232de5ba6",
      "new_mode": 33188,
      "new_path": "include/scsi/osd_initiator.h"
    }
  ]
}
