block/qcow2-bitmap: Allow resizes with persistent bitmaps
commitd19c6b36ffe09cec7ce7ac6a3e979bfe923ebba9
authorJohn Snow <jsnow@redhat.com>
Mon, 11 Mar 2019 18:51:46 +0000 (11 21:51 +0300)
committerJohn Snow <jsnow@redhat.com>
Tue, 12 Mar 2019 18:57:38 +0000 (12 14:57 -0400)
tree3dcdf00d405fb293b204ab01dac792d65a9beca6
parentbf5f0cf5d819cce45dd578a19386d8b60022654f
block/qcow2-bitmap: Allow resizes with persistent bitmaps

Since we now load all bitmaps into memory anyway, we can just truncate
them in-memory and then flush them back to disk. Just in case, we will
still check and enforce that this shortcut is valid -- i.e. that any
bitmap described on-disk is indeed in-memory and can be modified.

If there are any inconsistent bitmaps, we refuse to allow the truncate
as we do not actually load these bitmaps into memory, and it isn't safe
or reasonable to attempt to truncate corrupted data.

Signed-off-by: John Snow <jsnow@redhat.com>
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-id: 20190311185147.52309-4-vsementsov@virtuozzo.com
  [vsementsov: drop bitmap flushing, fix block comments style]
Signed-off-by: John Snow <jsnow@redhat.com>
block/qcow2-bitmap.c
block/qcow2.c
block/qcow2.h