)]}'
{
  "commit": "87c8331fcf72e501c3a3c0cdc5c9391ec72f7cf2",
  "tree": "4ed0e98760c977010fe54778c1a25625840b4583",
  "parents": [
    "e139942d77a6e3ac83bc322e826668054a8601d6"
  ],
  "author": {
    "name": "Dan Williams",
    "email": "dan.j.williams@intel.com",
    "time": "Thu Nov 17 17:59:51 2011 -0800"
  },
  "committer": {
    "name": "James Bottomley",
    "email": "JBottomley@Parallels.com",
    "time": "Sun Feb 19 13:52:34 2012 -0600"
  },
  "message": "[SCSI] libsas: prevent domain rediscovery competing with ata error handling\n\nlibata error handling provides for a timeout for link recovery.  libsas\nmust not rescan for previously known devices in this interval otherwise\nit may remove a device that is simply waiting for its link to recover.\nLet libata-eh make the determination of when the link is stable and\nprevent libsas (host workqueue) from taking action while this\ndetermination is pending.\n\nUsing a mutex (ha-\u003edisco_mutex) to flush and disable revalidation while\neh is running requires any discovery action that may block on eh be\nmoved to its own context outside the lock.  Probing ATA devices\nexplicitly waits on ata-eh and the cache-flush-io issued during device\nremoval may also pend awaiting eh completion.  Essentially any rphy\nadd/remove activity needs to run outside the lock.\n\nThis adds two new cleanup states for sas_unregister_domain_devices()\n\u0027allocated-but-not-probed\u0027, and \u0027flagged-for-destruction\u0027.  In the\n\u0027allocated-but-not-probed\u0027 state  dev-\u003erphy points to a rphy that is\nknown to have not been through a sas_rphy_add() event.  At domain\nteardown check if this device is still pending probe and cleanup\naccordingly.  Similarly if a device has already been queued for removal\nthen sas_unregister_domain_devices has nothing to do.\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Parallels.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2fc5a3961ca69d8b4d1878d193f701fe1b903583",
      "old_mode": 33188,
      "old_path": "drivers/scsi/libsas/sas_ata.c",
      "new_id": "4b6365c6410fff6450e80223f910a2092f9ddf41",
      "new_mode": 33188,
      "new_path": "drivers/scsi/libsas/sas_ata.c"
    },
    {
      "type": "modify",
      "old_id": "32e01176604689574ee5ab56571c71d011c56654",
      "old_mode": 33188,
      "old_path": "drivers/scsi/libsas/sas_discover.c",
      "new_id": "7e8fdcb202b7ee4aa05d5c3eb7e3fad7ed975086",
      "new_mode": 33188,
      "new_path": "drivers/scsi/libsas/sas_discover.c"
    },
    {
      "type": "modify",
      "old_id": "e5035aa4c2a6a3b9449596c676ffc439a2e0391b",
      "old_mode": 33188,
      "old_path": "drivers/scsi/libsas/sas_event.c",
      "new_id": "933d757499b5c053eae9c235ecbedbc1e80166d0",
      "new_mode": 33188,
      "new_path": "drivers/scsi/libsas/sas_event.c"
    },
    {
      "type": "modify",
      "old_id": "f33d0c9911c4ac8614c44c84ccf7a39032f375b0",
      "old_mode": 33188,
      "old_path": "drivers/scsi/libsas/sas_expander.c",
      "new_id": "e45b259dac4cb6b09324b7434db4d563f289791d",
      "new_mode": 33188,
      "new_path": "drivers/scsi/libsas/sas_expander.c"
    },
    {
      "type": "modify",
      "old_id": "572b943d7603c25d1759d0fdd6d38115a26be544",
      "old_mode": 33188,
      "old_path": "drivers/scsi/libsas/sas_init.c",
      "new_id": "52cd11d766644b7e29aacfd1a219c4abd336424a",
      "new_mode": 33188,
      "new_path": "drivers/scsi/libsas/sas_init.c"
    },
    {
      "type": "modify",
      "old_id": "948ea64cc2eb2e11a3aa4633e7b2249473071533",
      "old_mode": 33188,
      "old_path": "drivers/scsi/libsas/sas_internal.h",
      "new_id": "ebe9b81ddef57659ff96e4046728570c2e248315",
      "new_mode": 33188,
      "new_path": "drivers/scsi/libsas/sas_internal.h"
    },
    {
      "type": "modify",
      "old_id": "d88e55f9732b44f5e3252fc9869403275d7c865e",
      "old_mode": 33188,
      "old_path": "drivers/scsi/libsas/sas_port.c",
      "new_id": "2980bde4e34a6cb86602253e2b5e11f371d95669",
      "new_mode": 33188,
      "new_path": "drivers/scsi/libsas/sas_port.c"
    },
    {
      "type": "modify",
      "old_id": "9d9330ae4213206e5c300e5bbeeb4c3835170b9e",
      "old_mode": 33188,
      "old_path": "drivers/scsi/scsi_transport_sas.c",
      "new_id": "9421bae8af1a6ce4401a39e58135a3342f560e8d",
      "new_mode": 33188,
      "new_path": "drivers/scsi/scsi_transport_sas.c"
    },
    {
      "type": "modify",
      "old_id": "d792b13cfcf5426c3e9c9b9b59305a343d404359",
      "old_mode": 33188,
      "old_path": "include/scsi/libsas.h",
      "new_id": "bd6e89ece2ab7edf42a7db0f66fd6b8e977a0c15",
      "new_mode": 33188,
      "new_path": "include/scsi/libsas.h"
    },
    {
      "type": "modify",
      "old_id": "7d5013f8653d4baac394bb79ee63df8219e6f299",
      "old_mode": 33188,
      "old_path": "include/scsi/sas_ata.h",
      "new_id": "557fc9a8559bc7251a0a60976735bb40c9c650a3",
      "new_mode": 33188,
      "new_path": "include/scsi/sas_ata.h"
    },
    {
      "type": "modify",
      "old_id": "ffeebc34a4f7b27ce3ab3cbd75d8f41d0f4edf54",
      "old_mode": 33188,
      "old_path": "include/scsi/scsi_transport_sas.h",
      "new_id": "6d14daac75899ab64b98398595f0c5f456aec815",
      "new_mode": 33188,
      "new_path": "include/scsi/scsi_transport_sas.h"
    }
  ]
}
