)]}'
{
  "commit": "2ab7e1ecb81ce35ed8e8df512e3fc6338a4c55bb",
  "tree": "cc4fea4717a66e7d1428505bb409146d37e52668",
  "parents": [
    "8abbe3a42324264c9d5cc4e7c3d265b5be6d82d6"
  ],
  "author": {
    "name": "Joe Eykholt",
    "email": "jeykholt@cisco.com",
    "time": "Tue Aug 25 14:03:58 2009 -0700"
  },
  "committer": {
    "name": "James Bottomley",
    "email": "James.Bottomley@suse.de",
    "time": "Thu Sep 10 12:08:03 2009 -0500"
  },
  "message": "[SCSI] libfc: send GPN_ID in reaction to single-port RSCNs.\n\nWhen an RSCN indicates changes to individual remote ports,\ndon\u0027t blindly log them out and then back in.  Instead, determine\nwhether they\u0027re still in the directory, by doing GPN_ID.\n\nIf that is successful, call login, which will send ADISC and reverify,\notherwise, call logoff.  Perhaps we should just delete the rport,\nnot send LOGO, but it seems safer.\n\nAlso, fix a possible issue where if a mix of records in the RSCN\ncause us to queue disc_ports for disc_single and then we decide\nto do full rediscovery, we leak memory for those disc_ports queued.\n\nSo, go through the list of disc_ports even if doing full discovery.\nFree the disc_ports in any case.  If any of the disc_single() calls\nreturn error, do a full discovery.\n\nThe ability to fill in GPN_ID requests was added to fc_ct_fill().\nFor this, it needs the FC_ID to be passed in as an arg.\nThe did parameter for fc_elsct_send() is used for that, since the\nactual D_DID will always be 0xfffffc for all CT requests so far.\n\nSigned-off-by: Joe Eykholt \u003cjeykholt@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4242894cce7cd5a3bfa623a7375c26c0d7b41b48",
      "old_mode": 33188,
      "old_path": "drivers/scsi/libfc/fc_disc.c",
      "new_id": "c48799e9dd8e6d4f86220b35f42a284c1a373925",
      "new_mode": 33188,
      "new_path": "drivers/scsi/libfc/fc_disc.c"
    },
    {
      "type": "modify",
      "old_id": "d655924d46b61b921d78e4be38bb5092d37ee022",
      "old_mode": 33188,
      "old_path": "drivers/scsi/libfc/fc_elsct.c",
      "new_id": "5cfa68732e9d7dd8a0da7aaa9e8aad1c4aa7e2a1",
      "new_mode": 33188,
      "new_path": "drivers/scsi/libfc/fc_elsct.c"
    },
    {
      "type": "modify",
      "old_id": "c5ee6bb79e05b8053c2f21c939d16786b5b862af",
      "old_mode": 33188,
      "old_path": "include/scsi/fc_encode.h",
      "new_id": "27dad703824f164a442104cc2577ed9dd4cf5a3b",
      "new_mode": 33188,
      "new_path": "include/scsi/fc_encode.h"
    }
  ]
}
