On 04.05.2021 19:06, Vladimir Sementsov-Ogievskiy wrote: > Set bdi->is_dirty, so that qemu-img info could show dirty flag. > > After this commit the following check will show '"dirty-flag": true': > > ./build/qemu-img create -f qcow2 -o lazy_refcounts=on x 1M > ./build/qemu-io x > qemu-io> write 0 1M > > After "write" command success, kill the qemu-io process: > > kill -9 <qemu-io pid> > > ./build/qemu-img info --output=json x > > This will show '"dirty-flag": true' among other things. (before this > commit it shows '"dirty-flag": false') > > Note, that qcow2's dirty-bit is not a "dirty bit for the image". It > only protects qcow2 lazy refcounts feature. So, there are a lot of > conditions when qcow2 session may be not closed correctly, but bit is > 0. Still, when bit is set, the last session is definitely not finished > correctly and it's better to report it. > > Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com>
Works for me. Thanks, Tested-by: Kirill Tkhai <ktk...@virtuozzo.com> > --- > block/qcow2.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/block/qcow2.c b/block/qcow2.c > index 9727ae8fe3..39b91ef940 100644 > --- a/block/qcow2.c > +++ b/block/qcow2.c > @@ -5089,6 +5089,7 @@ static int qcow2_get_info(BlockDriverState *bs, > BlockDriverInfo *bdi) > BDRVQcow2State *s = bs->opaque; > bdi->cluster_size = s->cluster_size; > bdi->vm_state_offset = qcow2_vm_state_offset(s); > + bdi->is_dirty = s->incompatible_features & QCOW2_INCOMPAT_DIRTY; > return 0; > } > >