)]}'
{
  "commit": "6eb006c6079fd54a260caf7dfb3c750f65f4b1fc",
  "tree": "e7827f6fe9bbf0b2ffc7ea972840b1c82e2271cd",
  "parents": [
    "b710365a9a762cb6cf931a066648daf9a941a9af"
  ],
  "author": {
    "name": "Seth Forshee",
    "email": "seth.forshee@canonical.com",
    "time": "Tue Jul 26 09:56:07 2011 -0500"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@suse.de",
    "time": "Fri Nov 11 09:36:43 2011 -0800"
  },
  "message": "usb_storage: Don\u0027t freeze in usb-stor-scan\n\ncommit f02fe890ece7d695a5744b20525d45312382e6e4 upstream.\n\nScanning cannot be run during suspend or hibernation, but if\nusb-stor-scan freezes another thread waiting on scanning to\ncomplete may fail to freeze.\n\nHowever, if usb-stor-scan is left freezable without ever actually\nfreezing then the freezer will wait on it to exit, and threads\nwaiting for scanning to finish will no longer be blocked. One\nproblem with this approach is that usb-stor-scan has a delay to\nwait for devices to settle (which is currently the only point where\nit can freeze). To work around this we can request that the freezer\nsend a fake signal when freezing, then use interruptible sleep to\nwake the thread early when freezing happens.\n\nTo make this happen, the following changes are made to\nusb-stor-scan:\n\n * Use set_freezable_with_signal() instead of set_freezable() to\n   request a fake signal when freezing\n\n * Use wait_event_interruptible_timeout() instead of\n   wait_event_freezable_timeout() to avoid freezing\n\nSigned-off-by: Seth Forshee \u003cseth.forshee@canonical.com\u003e\nAcked-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0ca095820f3e7ca10c98e27a4eaeea728e5c533e",
      "old_mode": 33188,
      "old_path": "drivers/usb/storage/usb.c",
      "new_id": "c325e69415a14755b9f8ae9e13982ec260c40ef1",
      "new_mode": 33188,
      "new_path": "drivers/usb/storage/usb.c"
    }
  ]
}
