)]}'
{
  "commit": "42e9a92fe6a9095bd68a379aaec7ad2be0337f7a",
  "tree": "344f8d9f72a3d926d652632abb8d319f8e32343a",
  "parents": [
    "f032c2f7cdaae0e8907cd3b26426fc651dc5c275"
  ],
  "author": {
    "name": "Robert Love",
    "email": "robert.w.love@intel.com",
    "time": "Tue Dec 09 15:10:17 2008 -0800"
  },
  "committer": {
    "name": "James Bottomley",
    "email": "James.Bottomley@HansenPartnership.com",
    "time": "Mon Dec 29 11:24:33 2008 -0600"
  },
  "message": "[SCSI] libfc: A modular Fibre Channel library\n\nlibFC is composed of 4 blocks supported by an exchange manager\nand a framing library. The upper 4 layers are fc_lport, fc_disc,\nfc_rport and fc_fcp. A LLD that uses libfc could choose to\neither use libfc\u0027s block, or using the transport template\ndefined in libfc.h, override one or more blocks with its own\nimplementation.\n\nThe EM (Exchange Manager) manages exhcanges/sequences for all\ncommands- ELS, CT and FCP.\n\nThe framing library frames ELS and CT commands.\n\nThe fc_lport block manages the library\u0027s representation of the\nhost\u0027s FC enabled ports.\n\nThe fc_disc block manages discovery of targets as well as\nhandling changes that occur in the FC fabric (via. RSCN events).\n\nThe fc_rport block manages the library\u0027s representation of other\nentities in the FC fabric. Currently the library uses this block\nfor targets, its peer when in point-to-point mode and the\ndirectory server, but can be extended for other entities if\nneeded.\n\nThe fc_fcp block interacts with the scsi-ml and handles all\nI/O.\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\n[jejb: added include of delay.h to fix ppc64 compile prob spotted by sfr]\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1badcec18f41dc282e60598652b1b001c95cfe32",
      "old_mode": 33188,
      "old_path": "drivers/scsi/Kconfig",
      "new_id": "24d762aab7c5b9b5c3b06386a0751f977aed6552",
      "new_mode": 33188,
      "new_path": "drivers/scsi/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "b89aedfa9ed79d4d97181292027cb98a3f5c8c23",
      "old_mode": 33188,
      "old_path": "drivers/scsi/Makefile",
      "new_id": "87355f573d60de2d3777ae269f92b6fa1ae5ea9e",
      "new_mode": 33188,
      "new_path": "drivers/scsi/Makefile"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "55f982de3a9afa6e7b9c3659f33447fc2565a678",
      "new_mode": 33188,
      "new_path": "drivers/scsi/libfc/Makefile"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dd1564c9e04a8dfd49c63e0da6b81235c2d31803",
      "new_mode": 33188,
      "new_path": "drivers/scsi/libfc/fc_disc.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dd47fe619d1e710f301ed7c86a27408991aa9615",
      "new_mode": 33188,
      "new_path": "drivers/scsi/libfc/fc_elsct.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "66db08a5f27ffcd7399c2f34ef9324b47daec3f5",
      "new_mode": 33188,
      "new_path": "drivers/scsi/libfc/fc_exch.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "404e63ff46b8b9c475842caba0eb8674bbfab788",
      "new_mode": 33188,
      "new_path": "drivers/scsi/libfc/fc_fcp.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "63fe00cfe6674da452bf9052dccc5d02e81ed82b",
      "new_mode": 33188,
      "new_path": "drivers/scsi/libfc/fc_frame.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0b9bdb1fb807d8f2b0e7eee7a63f0dc6f5a2ee80",
      "new_mode": 33188,
      "new_path": "drivers/scsi/libfc/fc_lport.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e780d8caf70e82f431bbe3241caf60c1544accd8",
      "new_mode": 33188,
      "new_path": "drivers/scsi/libfc/fc_rport.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6300f556bce5fac629fb452852ea80791dfb38ad",
      "new_mode": 33188,
      "new_path": "include/scsi/fc_encode.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "04d34a71355fd8efa9f2d3200a057aea4c462ac8",
      "new_mode": 33188,
      "new_path": "include/scsi/fc_frame.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9f2876397ddaed6c435ef1bd7da4bbfb5a17db79",
      "new_mode": 33188,
      "new_path": "include/scsi/libfc.h"
    }
  ]
}
