)]}'
{
  "commit": "1fdd4b7be3655d39c3594bc215eb1df5ce225c7d",
  "tree": "3bc0dfa56410b2993c17b74df388f5e42c351ef3",
  "parents": [
    "da763e83012c066ebe3effbaa8e7e7c8f78b0fbf"
  ],
  "author": {
    "name": "Fam Zheng",
    "email": "famz@redhat.com",
    "time": "Fri Oct 23 11:08:11 2015 +0800"
  },
  "committer": {
    "name": "Kevin Wolf",
    "email": "kwolf@redhat.com",
    "time": "Fri Oct 23 18:18:24 2015 +0200"
  },
  "message": "block: Add \"drained begin/end\" for transactional backup\n\nThis ensures the atomicity of the transaction by avoiding processing of\nexternal requests such as those from ioeventfd.\n\nMove the assignment to state-\u003ebs up right after bdrv_drained_begin, so\nthat we can use it in the clean callback. The abort callback will still\ncheck bs-\u003ejob and state-\u003ejob, so it\u0027s OK.\n\nSigned-off-by: Fam Zheng \u003cfamz@redhat.com\u003e\nReviewed-by: Jeff Cody \u003cjcody@redhat.com\u003e\nReviewed-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e4a5eb43b8394afc312d096cc5561e0f0a9df938",
      "old_mode": 33188,
      "old_path": "blockdev.c",
      "new_id": "0a7848bd66cf88a4465dcd15b4152eea5faf6a09",
      "new_mode": 33188,
      "new_path": "blockdev.c"
    }
  ]
}
