)]}'
{
  "commit": "51288d7917e5c5b088985aaa7ff3592561fbc2ba",
  "tree": "53511dc975f9f608dc4cc8e073c81055ba3565b0",
  "parents": [
    "c1e1e5fa8f25f9061b076a05045a6d4950d1a891"
  ],
  "author": {
    "name": "Fam Zheng",
    "email": "famz@redhat.com",
    "time": "Fri Oct 23 11:08:09 2015 +0800"
  },
  "committer": {
    "name": "Kevin Wolf",
    "email": "kwolf@redhat.com",
    "time": "Fri Oct 23 18:18:24 2015 +0200"
  },
  "message": "block: Introduce \"drained begin/end\" API\n\nThe semantics is that after bdrv_drained_begin(bs), bs will not get new external\nrequests until the matching bdrv_drained_end(bs).\n\nSigned-off-by: Fam Zheng \u003cfamz@redhat.com\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2fd7a1d764aa16a6c3792a0323ed0bbc33611b2d",
      "old_mode": 33188,
      "old_path": "block/io.c",
      "new_id": "5ac6256ad33b0dd46e82e97a8f0e6d9c7dde4d92",
      "new_mode": 33188,
      "new_path": "block/io.c"
    },
    {
      "type": "modify",
      "old_id": "77e91bdc79837f979101963ead8792c7070ec012",
      "old_mode": 33188,
      "old_path": "include/block/block.h",
      "new_id": "610db923d55f71c6ef64f62fdbd6d77c172acac3",
      "new_mode": 33188,
      "new_path": "include/block/block.h"
    },
    {
      "type": "modify",
      "old_id": "7b76eea2d9fb25dff65621ed8140c0657102338f",
      "old_mode": 33188,
      "old_path": "include/block/block_int.h",
      "new_id": "3ceeb5a940c4f20f539d9a5fd9bf9f11fd16c776",
      "new_mode": 33188,
      "new_path": "include/block/block_int.h"
    }
  ]
}
