)]}'
{
  "commit": "006e845b5a4cbb1f93a2e8ed22fa648b9d7e4182",
  "tree": "f40283437757be89d85949e06eff6bde9dbe48b8",
  "parents": [
    "507175197b06a24beb2369abe95b00172741c457"
  ],
  "author": {
    "name": "Vladimir Sementsov-Ogievskiy",
    "email": "vsementsov@yandex-team.ru",
    "time": "Wed Mar 13 18:28:20 2024 +0300"
  },
  "committer": {
    "name": "Vladimir Sementsov-Ogievskiy",
    "email": "vsementsov@yandex-team.ru",
    "time": "Tue May 28 15:52:15 2024 +0300"
  },
  "message": "block/copy-before-write: create block_copy bitmap in filter node\n\nCurrently block_copy creates copy_bitmap in source node. But that is in\nbad relation with .independent_close\u003dtrue of copy-before-write filter:\nsource node may be detached and removed before .bdrv_close() handler\ncalled, which should call block_copy_state_free(), which in turn should\nremove copy_bitmap.\n\nThat\u0027s all not ideal: it would be better if internal bitmap of\nblock-copy object is not attached to any node. But that is not possible\nnow.\n\nThe simplest solution is just create copy_bitmap in filter node, where\nanyway two other bitmaps are created.\n\nSigned-off-by: Vladimir Sementsov-Ogievskiy \u003cvsementsov@yandex-team.ru\u003e\nReviewed-by: Fiona Ebner \u003cf.ebner@proxmox.com\u003e\nTested-by: Fiona Ebner \u003cf.ebner@proxmox.com\u003e\nMessage-Id: \u003c20240313152822.626493-4-vsementsov@yandex-team.ru\u003e\nSigned-off-by: Vladimir Sementsov-Ogievskiy \u003cvsementsov@yandex-team.ru\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9ee3dd7ef57b3695a5fc9c66bd76fcda9fc93fc0",
      "old_mode": 33188,
      "old_path": "block/block-copy.c",
      "new_id": "8fca2c3698e6526293308a9b9f656b9e76eee4f4",
      "new_mode": 33188,
      "new_path": "block/block-copy.c"
    },
    {
      "type": "modify",
      "old_id": "6d89af0b2940fa05f6cdf22d0dacdc6fd82b2676",
      "old_mode": 33188,
      "old_path": "block/copy-before-write.c",
      "new_id": "ed2c228da72ed6795809d43535028b9d6a9bc06d",
      "new_mode": 33188,
      "new_path": "block/copy-before-write.c"
    },
    {
      "type": "modify",
      "old_id": "0700953ab8fd775b7d44acfac5278540cdea1c6e",
      "old_mode": 33188,
      "old_path": "include/block/block-copy.h",
      "new_id": "8b41643bfa2d4205e66c840a2c2a1ee582b3224c",
      "new_mode": 33188,
      "new_path": "include/block/block-copy.h"
    },
    {
      "type": "modify",
      "old_id": "aa76131ca91b91c6ab6bdda82b3bd5991131bfd6",
      "old_mode": 33188,
      "old_path": "tests/qemu-iotests/257.out",
      "new_id": "c33dd7f3a907fd1212e7624b66d7a0937f37a1c7",
      "new_mode": 33188,
      "new_path": "tests/qemu-iotests/257.out"
    }
  ]
}
