)]}'
{
  "commit": "31376776d045c7ee0a1570c139ef30b6cb8f5b01",
  "tree": "a71068ddd503ff53f16ad1ff8b779d0d1b76d18a",
  "parents": [
    "07e2863d0271ac6c05206d8ce9e4f4c39b25d3ea"
  ],
  "author": {
    "name": "Markus Armbruster",
    "email": "armbru@redhat.com",
    "time": "Fri Sep 12 21:24:34 2014 +0200"
  },
  "committer": {
    "name": "Gerd Hoffmann",
    "email": "kraxel@redhat.com",
    "time": "Mon Sep 22 09:55:55 2014 +0200"
  },
  "message": "usb-storage: Fix how legacy init handles option ID clash\n\nusb_msd_init() calls qemu_opts_create() with a made-up ID and false\nfail_if_exists.  If the ID already exists, it happily messes up those\noptions, then fails drive_new(), because the BlockDriverState with\nthat ID already exists, too.\n\nReproducer: -drive if\u003dnone,id\u003dusb0,format\u003draw -usbdevice disk:tmp.qcow2\n\nPass true fail_if_exists to qemu_opts_create(), and if it fails, try\nthe next made-up ID.\n\nThe reproducer now succeeds, and creates an usb-storage device with ID\nusb1.\n\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nSigned-off-by: Gerd Hoffmann \u003ckraxel@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ae4efcbd2d6789d6bd9d69d8393fbe3f0eaf1114",
      "old_mode": 33188,
      "old_path": "hw/usb/dev-storage.c",
      "new_id": "eb75f6adb96cdc26df009a6ee13420abe79ee069",
      "new_mode": 33188,
      "new_path": "hw/usb/dev-storage.c"
    }
  ]
}
