)]}'
{
  "commit": "27cec15e4ed4e69155f2499ceb46d22d8425102a",
  "tree": "bba453fd9e8c77779298c21ec2480cd919ec1f1b",
  "parents": [
    "64757582dafca9b0b3846677e368dd40bcd68b43"
  ],
  "author": {
    "name": "Benoît Canet",
    "email": "benoit@irqsave.net",
    "time": "Fri Feb 21 22:21:10 2014 +0100"
  },
  "committer": {
    "name": "Kevin Wolf",
    "email": "kwolf@redhat.com",
    "time": "Fri Feb 21 22:29:48 2014 +0100"
  },
  "message": "quorum: Create quorum.c, add QuorumChildRequest and QuorumAIOCB.\n\nQuorum is a block filter mirroring writes to num_children children.\nFor reads quorum reads each children and does a vote.\nIf more than vote_threshold versions are identical the quorum is reached and\nthis winning version is returned to the guest. So quorum prevents bit corruption.\nFor high availability purpose minority errors are reported via QMP but the guest\ndoes not see them.\n\nThis patch creates the driver C source file and introduces the structures that\nwill be used in asynchronous reads and writes.\n\nSigned-off-by: Benoit Canet \u003cbenoit@irqsave.net\u003e\nReviewed-by: Max Reitz \u003cmreitz@redhat.com\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e254a2180a7bd069c84fe40ca8deb1639efc2490",
      "old_mode": 33188,
      "old_path": "block/Makefile.objs",
      "new_id": "716556f6eceba627cd5afb6b30be7c4fcdf199e0",
      "new_mode": 33188,
      "new_path": "block/Makefile.objs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "950f5cc990f163371496937cde52440a8db170e7",
      "new_mode": 33188,
      "new_path": "block/quorum.c"
    }
  ]
}
