[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] qcow2: set bdi->is_dirty
From: |
Kirill Tkhai |
Subject: |
Re: [PATCH] qcow2: set bdi->is_dirty |
Date: |
Tue, 4 May 2021 19:58:23 +0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.0 |
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 <vsementsov@virtuozzo.com>
Works for me. Thanks,
Tested-by: Kirill Tkhai <ktkhai@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;
> }
>
>