)]}'
{
  "commit": "d61790112fa861fbbbb02b53f9c3beb9ca7f8419",
  "tree": "27f0e53df711b235e1ea8187d57c076a54b5b3cb",
  "parents": [
    "0d31c7c200b3dca2aeeaa6f74ff3fd539aad803a"
  ],
  "author": {
    "name": "Denis V. Lunev",
    "email": "den@openvz.org",
    "time": "Tue Apr 28 10:46:58 2015 +0300"
  },
  "committer": {
    "name": "Stefan Hajnoczi",
    "email": "stefanha@redhat.com",
    "time": "Fri May 22 09:37:32 2015 +0100"
  },
  "message": "block/parallels: add prealloc-mode and prealloc-size open paramemets\n\nThis is preparational commit for tweaks in Parallels image expansion.\nThe idea is that enlarge via truncate by one data block is slow. It\nwould be much better to use fallocate via bdrv_write_zeroes and\nexpand by some significant amount at once.\n\nOriginal idea with sequential file writing to the end of the file without\nfallocate/truncate would be slower than this approach if the image is\nexpanded with several operations:\n- each image expanding means file metadata update, i.e. filesystem\n  journal write. Truncate/write to newly truncated space update file\n  metadata twice thus truncate removal helps. With fallocate call\n  inside bdrv_write_zeroes file metadata is updated only once and\n  this should happen infrequently thus this approach is the best one\n  for the image expansion\n- tail writes are ordered, i.e. the guest IO queue could not be sent\n  immediately to the host introducing additional IO delays\n\nThis patch just adds proper parameters into BDRVParallelsState and\nperforms options parsing in parallels_open.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nReviewed-by: Roman Kagan \u003crkagan@parallels.com\u003e\nSigned-off-by: Roman Kagan \u003crkagan@parallels.com\u003e\nMessage-id: 1430207220-24458-26-git-send-email-den@openvz.org\nCC: Roman Kagan \u003crkagan@parallels.com\u003e\nCC: Kevin Wolf \u003ckwolf@redhat.com\u003e\nCC: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "05fe030f055bfc5bd6b4a0b50c2ed0632ddc4cc8",
      "old_mode": 33188,
      "old_path": "block/parallels.c",
      "new_id": "440938e18ab6da5feda73a22a57488e44b6b875f",
      "new_mode": 33188,
      "new_path": "block/parallels.c"
    }
  ]
}
