)]}'
{
  "commit": "f3e81b19aac23c0e8c55d5961324ef7de44c23bb",
  "tree": "9ea0bf3c5ecabb855a78623236d07e7bc2976ca3",
  "parents": [
    "0c247c559cd70f85ba9f0764ce13ae00e20fcad8"
  ],
  "author": {
    "name": "Tejun Heo",
    "email": "htejun@gmail.com",
    "time": "Mon May 15 20:58:21 2006 +0900"
  },
  "committer": {
    "name": "Tejun Heo",
    "email": "htejun@gmail.com",
    "time": "Mon May 15 20:58:21 2006 +0900"
  },
  "message": "[PATCH] libata-eh: implement ata_eh_info and ata_eh_context\n\nstruct ata_eh_info serves as the communication channel between\nexecution path and EH.  Execution path describes detected error\ncondition in ap-\u003eeh_info and EH recovers the port using it.  To avoid\nmissing error conditions detected during EH, EH makes its own copy of\neh_info and clears it on entry allowing error info to accumulate\nduring EH.\n\nMost EH states including EH\u0027s copy of eh_info are stored in\nap-\u003eeh_context (struct ata_eh_context) which is owned by EH and thus\ndoesn\u0027t require any synchronization to access and alter.  This\nstandardized context makes it easy to integrate various parts of EH\nand extend EH to handle multiple links (for PM).\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "71ad18b7cff6e3eda05b50d586dd976dc57edef5",
      "old_mode": 33188,
      "old_path": "drivers/scsi/libata-eh.c",
      "new_id": "1968f2d140f358247cc66ac877bab426f179307b",
      "new_mode": 33188,
      "new_path": "drivers/scsi/libata-eh.c"
    },
    {
      "type": "modify",
      "old_id": "f5cea13599c339cdbb43a13ba3585778f6cab00f",
      "old_mode": 33188,
      "old_path": "include/linux/libata.h",
      "new_id": "298f9918e37528fab69b8cdce8eb65e0974c8835",
      "new_mode": 33188,
      "new_path": "include/linux/libata.h"
    }
  ]
}
