)]}'
{
  "commit": "8d6d89cb63c57569864ecdeb84d3a1c2ebd031cc",
  "tree": "2fdd81441b532290fca5561de96bc78131ec8376",
  "parents": [
    "eb100396b9d2658e8bf9cdc14bfcb16a9152f464"
  ],
  "author": {
    "name": "Bharata B Rao",
    "email": "bharata@linux.vnet.ibm.com",
    "time": "Thu Sep 27 19:30:32 2012 +0530"
  },
  "committer": {
    "name": "Kevin Wolf",
    "email": "kwolf@redhat.com",
    "time": "Fri Sep 28 17:58:12 2012 +0200"
  },
  "message": "block: Support GlusterFS as a QEMU block backend.\n\nThis patch adds gluster as the new block backend in QEMU. This gives\nQEMU the ability to boot VM images from gluster volumes. Its already\npossible to boot from VM images on gluster volumes using FUSE mount, but\nthis patchset provides the ability to boot VM images from gluster volumes\nby by-passing the FUSE layer in gluster. This is made possible by\nusing libgfapi routines to perform IO on gluster volumes directly.\n\nVM Image on gluster volume is specified like this:\n\nfile\u003dgluster[+transport]://[server[:port]]/volname/image[?socket\u003d...]\n\n\u0027gluster\u0027 is the protocol.\n\n\u0027transport\u0027 specifies the transport type used to connect to gluster\nmanagement daemon (glusterd). Valid transport types are\ntcp, unix and rdma. If a transport type isn\u0027t specified, then tcp\ntype is assumed.\n\n\u0027server\u0027 specifies the server where the volume file specification for\nthe given volume resides. This can be either hostname, ipv4 address\nor ipv6 address. ipv6 address needs to be within square brackets [ ].\nIf transport type is \u0027unix\u0027, then \u0027server\u0027 field should not be specifed.\nThe \u0027socket\u0027 field needs to be populated with the path to unix domain\nsocket.\n\n\u0027port\u0027 is the port number on which glusterd is listening. This is optional\nand if not specified, QEMU will send 0 which will make gluster to use the\ndefault port. If the transport type is unix, then \u0027port\u0027 should not be\nspecified.\n\n\u0027volname\u0027 is the name of the gluster volume which contains the VM image.\n\n\u0027image\u0027 is the path to the actual VM image that resides on gluster volume.\n\nExamples:\n\nfile\u003dgluster://1.2.3.4/testvol/a.img\nfile\u003dgluster+tcp://1.2.3.4/testvol/a.img\nfile\u003dgluster+tcp://1.2.3.4:24007/testvol/dir/a.img\nfile\u003dgluster+tcp://[1:2:3:4:5:6:7:8]/testvol/dir/a.img\nfile\u003dgluster+tcp://[1:2:3:4:5:6:7:8]:24007/testvol/dir/a.img\nfile\u003dgluster+tcp://server.domain.com:24007/testvol/dir/a.img\nfile\u003dgluster+unix:///testvol/dir/a.img?socket\u003d/tmp/glusterd.socket\nfile\u003dgluster+rdma://1.2.3.4:24007/testvol/a.img\n\nSigned-off-by: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b5754d39bf1c3907f1146640e6059871a7dd4770",
      "old_mode": 33188,
      "old_path": "block/Makefile.objs",
      "new_id": "a1ae67f336e044ee968adf7e2e47f9845d760759",
      "new_mode": 33188,
      "new_path": "block/Makefile.objs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3588d7377ffe7f03737dd5e57bf71ab0add8ffec",
      "new_mode": 33188,
      "new_path": "block/gluster.c"
    }
  ]
}
