)]}'
{
  "commit": "1ac362cdbd799eb8165e2e3bb5cd5aa38b1baae3",
  "tree": "3534a306f12f2fde93427d0d65c3078f1da9a672",
  "parents": [
    "b15446fdbf4ac2b29f6ee5080630a80715abfc20"
  ],
  "author": {
    "name": "chai wen",
    "email": "chaiw.fnst@cn.fujitsu.com",
    "time": "Wed Jun 04 11:47:37 2014 +0800"
  },
  "committer": {
    "name": "Stefan Hajnoczi",
    "email": "stefanha@redhat.com",
    "time": "Wed Jun 04 11:22:39 2014 +0200"
  },
  "message": "block: fix wrong order in live block migration setup\n\nThe function init_blk_migration is better to be called before\nset_dirty_tracking as the reasons below.\n\nIf we want to track dirty blocks via dirty_maps on a BlockDriverState\nwhen doing live block-migration, its correspoding \u0027BlkMigDevState\u0027 should be\nadded to block_mig_state.bmds_list first for subsequent processing.\nOtherwise set_dirty_tracking will do nothing on an empty list than allocating\ndirty_bitmaps for them. And bdrv_get_dirty_count will access the\nbmds-\u003edirty_maps directly, then there would be a segfault triggered.\n\nIf the set_dirty_tracking fails, qemu_savevm_state_cancel will handle\nthe cleanup of init_blk_migration automatically.\n\nReviewed-by: Fam Zheng \u003cfamz@redhat.com\u003e\nSigned-off-by: chai wen \u003cchaiw.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "16562709c853e60d86b3977c947f4e81318a1dca",
      "old_mode": 33188,
      "old_path": "block-migration.c",
      "new_id": "25a03889f471c0a81dec66d59519137c9f7fd13d",
      "new_mode": 33188,
      "new_path": "block-migration.c"
    }
  ]
}
