28.02.2019 12:26, Andrey Shinkevich wrote: > When a bitmap is removed, we can clean some space on the disk. The size > of a cluster may be larger, so is the size of the bitmap that includes > many clusters. Some bitmaps can be as large as tens of megabytes. > The flag QCOW2_DISCARD_ALWAYS allows a call to the raw_co_pdiscard() > that does the actual cleaning of the image on disk, while with the flag > QCOW2_DISCARD_OTHER, a reference count of the cluster is updated only.
not quite right, as it depends on configuration. So I'd reword the whole message to be simpler, like: Bitmap data may take a lot of disk space, so it's better to discard it always. > > Signed-off-by: Andrey Shinkevich <andrey.shinkev...@virtuozzo.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> > --- > v1: Discard old bitmap directories in QCOW2 image > > In the first version of the patch, any call to qcow2_free_clusters() in > block/qcow2-bitmap.c was with the flag QCOW2_DISCARD_ALWAYS, even in the > cases when the cleaned space is insignificant, particularly, in case of > bitmap directories. > Discussed in the email thread with the message ID > <1549974951-731285-1-git-send-email-andrey.shinkev...@virtuozzo.com> > > block/qcow2-bitmap.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/block/qcow2-bitmap.c b/block/qcow2-bitmap.c > index 3ee524d..162744e 100644 > --- a/block/qcow2-bitmap.c > +++ b/block/qcow2-bitmap.c > @@ -202,7 +202,7 @@ static void clear_bitmap_table(BlockDriverState *bs, > uint64_t *bitmap_table, > continue; > } > > - qcow2_free_clusters(bs, addr, s->cluster_size, QCOW2_DISCARD_OTHER); > + qcow2_free_clusters(bs, addr, s->cluster_size, QCOW2_DISCARD_ALWAYS); > bitmap_table[i] = 0; > } > } > -- Best regards, Vladimir