On 7/23/25 21:29, Denis V. Lunev wrote:
From time to time it is needed to remove all bitmaps from the image.
Before this patch the process is not very convinient. One should
perform
qemu-img info
and parse the output to obtain all names. After that one should
sequentially call
qemu
map.
The patch adds --remove-all sub-command to 'qemu-img bitmap'.
Signed-off-by: Denis V. Lunev
CC: Kevin Wolf
CC: Hanna Reitz
CC: Michael Tokarev
---
Changes from v1:
* rebased to latest head
* adopted bitmap help to the new layout
docs/tools/qemu-img.rst | 4 +++-
qemu-img.c
On 7/7/25 22:58, Denis V. Lunev wrote:
From time to time it is needed to remove all bitmaps from the image.
Before this patch the process is not very convinient. One should
perform
qemu-img info
and parse the output to obtain all names. After that one should
sequentially call
qemu-img
map.
The patch adds --remove-all sub-command to 'qemu-img bitmap'.
Signed-off-by: Denis V. Lunev
CC: Kevin Wolf
CC: Hanna Reitz
---
docs/tools/qemu-img.rst | 4 +++-
qemu-img.c | 43 ++---
2 files changed, 39 insertions(+), 8 deletions(-
s helper
for the convinience.
Signed-off-by: Denis V. Lunev
CC: Vladimir Sementsov-Ogievskiy
CC: Andrey Drobyshev
CC: Kevin Wolf
CC: Hanna Reitz
---
block/preallocate.c | 21 +++--
1 file changed, 7 insertions(+), 14 deletions(-)
diff --git a/block/preallocate.c b/block/p
guideline note.
Thus the most noticeable change is an addition of preallocate_inactivate()
callback and cleanup of all asynchronous stuff.
Changes from v2:
- the series has been completely rethinked
Signed-off-by: Denis V. Lunev
CC: Vladimir Sementsov-Ogievskiy
CC: Andrey Drobyshev
CC: Kevin Wolf
Let us auto-enable it inside handle_write() and truncate(), i.e. on the
actual write operation. This just makes things more relaxing.
Signed-off-by: Denis V. Lunev
CC: Vladimir Sementsov-Ogievskiy
CC: Andrey Drobyshev
CC: Kevin Wolf
CC: Hanna Reitz
---
block/preallocate.c | 9 +
1
ntially once we have returned from bdrv_inactivate() to the
caller and the control has been passed to the migration target.
This patch has truncated the image inside preallocate_inactivate() thus
making further work inside preallocate_drop_resize_bh() noop.
Signed-off-by: Denis V. Lunev
CC: Vla
. It should be enough to be handled
inside preallocate_reopen_prepare() and preallocate_inactivate().
There is no more need to have preallocate_set_perm() and
preallocate_child_perm() perms.
Signed-off-by: Denis V. Lunev
CC: Vladimir Sementsov-Ogievskiy
CC: Andrey Drobyshev
CC: Kevin Wolf
CC
Once permission change process is normalized, there is no need to have
permission update inside preallocate_drop_resize() and
preallocate_truncate_to_real_size() could be merged into the caller.
Signed-off-by: Denis V. Lunev
CC: Vladimir Sementsov-Ogievskiy
CC: Andrey Drobyshev
CC: Kevin Wolf
allocation) into an
external snapshot and make it an active disk.
Signed-off-by: Andrey Drobyshev
Signed-off-by: Denis V. Lunev
CC: Vladimir Sementsov-Ogievskiy
CC: Andrey Drobyshev
CC: Kevin Wolf
CC: Hanna Reitz
---
tests/qemu-iotests/tests/prealloc-checks | 222 +++
On 11/6/24 10:53, Kevin Wolf wrote:
[ Cc: qemu-block ]
Am 06.11.2024 um 09:04 hat Dmitry Frolov geschrieben:
The sum "cluster_index + count" may overflow uint32_t.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Signed-off-by: Dmitry Frolov
Thanks, applied to the block bra
On 11/6/24 17:00, Kevin Wolf wrote:
Am 06.11.2024 um 16:45 hat Denis V. Lunev geschrieben:
On 11/6/24 10:53, Kevin Wolf wrote:
[ Cc: qemu-block ]
Am 06.11.2024 um 09:04 hat Dmitry Frolov geschrieben:
The sum "cluster_index + count" may overflow uint32_t.
Found by Linux Verificat
On 11/6/24 10:53, Kevin Wolf wrote:
[ Cc: qemu-block ]
Am 06.11.2024 um 09:04 hat Dmitry Frolov geschrieben:
The sum "cluster_index + count" may overflow uint32_t.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Signed-off-by: Dmitry Frolov
Thanks, applied to the block bra
: Denis V. Lunev
CC: Andrey Drobyshev
CC: Vladimir Sementsov-Ogievskiy
CC: Kevin Wolf
RW permissions could not be lifted from the preallocation filter if
truncate operation has not been finished. In the other case this would
mean WRITE operation (image truncate) called after the return from
inactivate call. This is definitely a contract violation.
Signed-off-by: Denis V. Lunev
ensure that it has been really executed before completion of
the section increments the amount of in-flight requests.
Signed-off-by: Denis V. Lunev
CC: Andrey Drobyshev
CC: Vladimir Sementsov-Ogievskiy
CC: Kevin Wolf
---
block/preallocate.c| 42 ++
tests
On 10/9/24 16:54, Andrey Drobyshev wrote:
On 10/9/24 4:58 PM, Denis V. Lunev wrote:
Recent QEMU changes around preallocate_set_perm mandates that it is not
possible to poll on aio_context inside this function anymore. Thus
truncate operation has been moved inside bottom half. This bottom half
RW permissions could not be lifted from the preallocation filter if
truncate operation has not been finished. In the other case this would
mean WRITE operation (image truncate) called after the return from
inactivate call. This is definitely a contract violation.
Signed-off-by: Denis V. Lunev
CC
ensure that it has been really executed before completion of
the section increments the amount of in-flight requests.
Signed-off-by: Denis V. Lunev
CC: Andrey Drobyshev
CC: Vladimir Sementsov-Ogievskiy
CC: Kevin Wolf
---
block/preallocate.c| 38 ++
tests/qemu
ensure that it has been really executed before completion of
the section increments the amount of in-flight requests.
In addition to this we should disable lifting WRITE permission when
truncate() operation is not fully completed yet.
Signed-off-by: Denis V. Lunev
CC: Andrey Drobyshev
CC: Vladimir
On 8/7/24 19:43, Eric Blake wrote:
v3 was here:
https://lists.gnu.org/archive/html/qemu-devel/2024-08/msg00818.html
since then:
- re-add a minor patch from v2 (now patch 1)
- refactor how the client opaque pointer is handled (patch 2)
- add two new patches to prevent malicious clients from
On 8/5/24 13:59, Kevin Wolf wrote:
Am 18.07.2024 um 21:46 hat Denis V. Lunev geschrieben:
On 7/18/24 17:51, Kevin Wolf wrote:
Am 16.07.2024 um 16:41 hat Andrey Drobyshev geschrieben:
From: "Denis V. Lunev"
We have observed that some clusters in the QCOW2 files are zeroed
while pre
On 7/18/24 17:51, Kevin Wolf wrote:
Am 16.07.2024 um 16:41 hat Andrey Drobyshev geschrieben:
From: "Denis V. Lunev"
We have observed that some clusters in the QCOW2 files are zeroed
while preallocation filter is used.
We are able to trace down the following sequence when prealloc
On 7/18/24 17:51, Kevin Wolf wrote:
Am 16.07.2024 um 16:41 hat Andrey Drobyshev geschrieben:
From: "Denis V. Lunev"
We have observed that some clusters in the QCOW2 files are zeroed
while preallocation filter is used.
We are able to trace down the following sequence when prealloc
On 7/12/24 13:55, Vladimir Sementsov-Ogievskiy wrote:
On 12.07.24 12:46, Andrey Drobyshev wrote:
From: "Denis V. Lunev"
We have observed that some clusters in the QCOW2 files are zeroed
while preallocation filter is used.
We are able to trace down the following sequence when preal
On 5/29/24 04:33, Wang, Lei wrote:
On 5/1/2024 1:05, Denis V. Lunev via wrote:
Preallocate filter allows to implement really interesting setups.
Assume that we have
* shared block device, f.e. iSCSI LUN, implemented with some HW device
* clustered LVM on top of it
* QCOW2 image stored inside
On 4/30/24 19:02, Denis V. Lunev wrote:
This parameter is always passed as 'false' from the caller.
Signed-off-by: Denis V. Lunev
CC: Andrey Zhadchenko
CC: Kevin Wolf
CC: Hanna Reitz
---
block/file-posix.c | 8 +++-
1 file changed, 3 insertions(+), 5 deletions(-)
diff --g
On 4/30/24 19:05, Denis V. Lunev wrote:
Preallocate filter allows to implement really interesting setups.
Assume that we have
* shared block device, f.e. iSCSI LUN, implemented with some HW device
* clustered LVM on top of it
* QCOW2 image stored inside LVM volume
This allows very cheap
On 4/30/24 19:02, Denis V. Lunev wrote:
This parameter is always passed as 'false' from the caller.
Signed-off-by: Denis V. Lunev
CC: Andrey Zhadchenko
CC: Kevin Wolf
CC: Hanna Reitz
---
block/file-posix.c | 8 +++-
1 file changed, 3 insertions(+), 5 deletions(-)
diff --g
On 4/30/24 19:05, Denis V. Lunev wrote:
Preallocate filter allows to implement really interesting setups.
Assume that we have
* shared block device, f.e. iSCSI LUN, implemented with some HW device
* clustered LVM on top of it
* QCOW2 image stored inside LVM volume
This allows very cheap
is done effectively
as resizing is done in chinks.
The patch adds allocation mode for this purpose in order to distinguish
'fallocate' for ordinary file system and 'truncate'.
Signed-off-by: Denis V. Lunev
CC: Alexander Ivanov
CC: Kevin Wolf
CC: Hanna Reitz
CC: Vladimir
This parameter is always passed as 'false' from the caller.
Signed-off-by: Denis V. Lunev
CC: Andrey Zhadchenko
CC: Kevin Wolf
CC: Hanna Reitz
---
block/file-posix.c | 8 +++-
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/block/file-posix.c b/block/file-pos
On 2/28/24 11:25, Alexander Ivanov wrote:
On 1/18/24 14:31, Denis V. Lunev wrote:
On 1/16/24 15:45, Denis V. Lunev wrote:
On 12/28/23 11:12, Alexander Ivanov wrote:
Now we support extensions saving and can let to work with them in
read-write mode.
Signed-off-by: Alexander Ivanov
On 1/24/24 18:43, Eric Blake wrote:
On Wed, Jan 24, 2024 at 06:22:57PM +0200, Andrey Drobyshev wrote:
If socket path is too long (longer than 108 bytes), socket can't be
opened. This might lead to failure when test dir path is long enough.
Make sure socket is created in iotests.sock_dir to avoi
On 12/28/23 11:12, Alexander Ivanov wrote:
Parallels format driver:
* make some preparation
* add dirty bitmap saving
* make dirty bitmap RW
* fix broken checks
* refactor leak check
* add parallels format support to several tests
You could find these patches in my repo:
https://github.com/Alexa
On 12/28/23 11:12, Alexander Ivanov wrote:
Since we have used bitmap, field data_end in BDRVParallelsState is
redundant and can be removed.
Add parallels_data_end() helper and remove data_end handling.
Signed-off-by: Alexander Ivanov
---
block/parallels.c | 33 +--
On 12/28/23 11:12, Alexander Ivanov wrote:
Since we have used bitmap, leak check is useless. Transform
parallels_truncate_unused_clusters() to parallels_check_unused_clusters()
helper and use it in leak check.
Signed-off-by: Alexander Ivanov
---
block/parallels.c | 121 +++
ile, s->data_end << BDRV_SECTOR_BITS,
-true, PREALLOC_MODE_OFF, 0, NULL);
+ret = parallels_truncate_unused_clusters(bs);
if (ret < 0) {
error_report("Failed to truncate image: %s", strerror(-ret));
}
Reviewed-by: Denis V. Lunev
s->data_end = res->image_end_offset >> BDRV_SECTOR_BITS;
-
-parallels_free_used_bitmap(bs);
-ret = parallels_fill_used_bitmap(bs);
-if (ret == -ENOMEM) {
-res->check_errors++;
- return ret;
-}
-
-if (explicit) {
-res->leaks_fixed += count;
-}
+res->leaks_fixed += count;
}
}
Reviewed-by: Denis V. Lunev
;
}
+bdrv_dirty_bitmap_set_persistence(bitmap, true);
bitmaps = g_slist_append(bitmaps, bitmap);
break;
Reviewed-by: Denis V. Lunev
On 12/28/23 11:12, Alexander Ivanov wrote:
If all the bits in a dirty bitmap cluster are ones, the cluster shouldn't
be written. Instead the corresponding L1 entry should be set to 1.
Check if all bits in a memory region are ones and set 1 to L1 entries
corresponding clusters filled with ones.
Anyway, this requires at least detailed thinking.From 2f70166ef640304726d5dfcee3e906b0ba1676dd Mon Sep 17 00:00:00 2001
From: "Denis V. Lunev"
Date: Thu, 18 Jan 2024 13:29:56 +0100
Subject: [PATCH 1/1] parallels: drop dirty bitmap data if the image was not
properly closed
This data is obsolete.
The approach is
On 1/16/24 15:45, Denis V. Lunev wrote:
On 12/28/23 11:12, Alexander Ivanov wrote:
Now we support extensions saving and can let to work with them in
read-write mode.
Signed-off-by: Alexander Ivanov
---
block/parallels-ext.c | 4
block/parallels.c | 17 -
2 files
On 12/28/23 11:12, Alexander Ivanov wrote:
Now dirty bitmaps can be loaded but there is no their saving. Add code for
dirty bitmap storage.
Signed-off-by: Alexander Ivanov
---
block/parallels-ext.c | 168 ++
block/parallels.c | 16 +++-
block/par
rp);
+if (ret < 0) {
+ goto fail;
}
}
Reviewed-by: Denis V. Lunev
On 12/28/23 11:12, Alexander Ivanov wrote:
All the checks were fixed to work with used bitmap. Create used bitmap in
parallels_open() even if need_check is true.
Signed-off-by: Alexander Ivanov
---
block/parallels.c | 10 --
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git
pointing to this cluster.
* Loop through the BAT entries, check bits relevant to an entry offset.
* If bit is set, this entry is duplicated. Otherwise set the bit.
Reviewed-by: Denis V. Lunev
if (explicit) {
res->leaks_fixed += count;
}
Reviewed-by: Denis V. Lunev
gt;data_end = res->image_end_offset >> BDRV_SECTOR_BITS;
if (explicit) {
res->leaks_fixed += count;
}
Reviewed-by: Denis V. Lunev
have had before
this patch and after. On a error originally we have had
data_end unchanged, now it points to a wrong location.
May be this would be mitigated later, but I'd prefer
to have data_end updated in mark_unused. That would make
a lot of sense.
Anyway, with data_end dropped at the end of the series,
this would not worth efforts. Thus this is fine.
With a note about comment,
Reviewed-by: Denis V. Lunev
PH_RDLOCK
parallels_read_format_extension(BlockDriverState *bs, int64_t ext_off,
Reviewed-by: Denis V. Lunev
luster_index);
+if (next_used < cluster_end) {
return -EBUSY;
}
bitmap_set(bitmap, cluster_index, count);
Reviewed-by: Denis V. Lunev
seek(fd, current_length, SEEK_SET);
if (seek_result < 0) {
@@ -2413,7 +2413,7 @@ out:
}
}
-g_free(buf);
+qemu_vfree(buf);
return result;
}
Reviewed-by: Denis V. Lunev
On 11/1/23 17:51, Daniel P. Berrangé wrote:
On Tue, Oct 31, 2023 at 03:33:52PM +0100, Hanna Czenczek wrote:
On 01.10.23 22:46, Denis V. Lunev wrote:
Can you please not top-post. This makes the discussion complex. This
approach is followed in this mailing list and in other similar lists
like
On 10/30/23 10:06, Denis V. Lunev wrote:
On 10/27/23 09:46, Alexander Ivanov wrote:
Add a helper to set unused areas in the used bitmap.
Signed-off-by: Alexander Ivanov
---
block/parallels.c | 17 +
block/parallels.h | 2 ++
2 files changed, 19 insertions(+)
diff --git a
On 10/27/23 09:46, Alexander Ivanov wrote:
Add a helper to set unused areas in the used bitmap.
Signed-off-by: Alexander Ivanov
---
block/parallels.c | 17 +
block/parallels.h | 2 ++
2 files changed, 19 insertions(+)
diff --git a/block/parallels.c b/block/parallels.c
inde
+int parallels_mark_used(BlockDriverState *bs, unsigned long *bitmap,
+uint32_t bitmap_size, int64_t off, uint32_t count);
+
int parallels_read_format_extension(BlockDriverState *bs,
int64_t ext_off, Error **errp);
Reviewed-by: Denis V. Lunev
,7 @@ static BlockDriver bdrv_parallels = {
.bdrv_co_check = parallels_co_check,
.bdrv_co_pdiscard = parallels_co_pdiscard,
.bdrv_co_pwrite_zeroes = parallels_co_pwrite_zeroes,
+.bdrv_inactivate= parallels_inactivate,
};
static void bdrv_parallels_init(void)
Reviewed-by: Denis V. Lunev
gt;opaque;
s->used_bmap_size = 0;
g_free(s->used_bmap);
+s->used_bmap = NULL;
}
static int64_t coroutine_fn GRAPH_RDLOCK
Reviewed-by: Denis V. Lunev
On 9/7/23 23:53, Denis V. Lunev wrote:
Unfortunately 271 IO test is broken if started in non-cached mode.
Commits
commit a6b257a08e3d72219f03e461a52152672fec0612
Author: Nir Soffer
Date: Tue Aug 13 21:21:03 2019 +0300
file-posix: Handle undetectable alignment
and
On 10/6/23 20:10, Vladimir Sementsov-Ogievskiy wrote:
On 06.10.23 11:56, Kevin Wolf wrote:
Am 05.10.2023 um 21:55 hat Vladimir Sementsov-Ogievskiy geschrieben:
On 11.09.23 12:46, Kevin Wolf wrote:
When the permission related BlockDriver callbacks are called, we
are in
the middle of an operatio
On 9/7/23 23:53, Denis V. Lunev wrote:
Unfortunately 271 IO test is broken if started in non-cached mode.
Commits
commit a6b257a08e3d72219f03e461a52152672fec0612
Author: Nir Soffer
Date: Tue Aug 13 21:21:03 2019 +0300
file-posix: Handle undetectable alignment
and
point of view.
I would be glad to hear other opinions.
Regards,
Mike.
On Sun, Oct 1, 2023 at 3:25 PM Denis V. Lunev wrote:
On 9/30/23 22:31, Mike Maslenkin wrote:
Add a check that destination file exists and do not call bdrv_create for
this case.
Currently `qemu-img dd` command destroys c
On 9/30/23 22:31, Mike Maslenkin wrote:
Add a check that destination file exists and do not call bdrv_create for
this case.
Currently `qemu-img dd` command destroys content of destination file.
Effectively this means that parameters (geometry) of destination image
file are changing. This can be
On 9/7/23 23:53, Denis V. Lunev wrote:
Unfortunately 271 IO test is broken if started in non-cached mode.
Commits
commit a6b257a08e3d72219f03e461a52152672fec0612
Author: Nir Soffer
Date: Tue Aug 13 21:21:03 2019 +0300
file-posix: Handle undetectable alignment
and
-aligned to cluster offset (2 new clusters should be allocated)
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
tests/qemu-iotests/131 | 31 +++
tests/qemu-iotests/131.out | 38 ++
2 files changed, 69 insertions
The zero flag is missed in the Parallels format specification. We can
resort to discard if we have no backing file.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 14 ++
1 file changed, 14 insertions(+)
diff --git a/block/parallels.c b/block
More conditions follows thus the check should be more scalable.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 21 ++---
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/block/parallels.c b/block/parallels.c
index bd26c8db63
We have only check through self-repair and that proven to be not enough.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
tests/qemu-iotests/tests/parallels-checks | 17 +
tests/qemu-iotests/tests/parallels-checks.out | 18 ++
2 files changed
The access to the bitmap is not optimized completely.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 51 ---
1 file changed, 39 insertions(+), 12 deletions(-)
diff --git a/block/parallels.c b/block/parallels.c
This would be useful in the next patch in allocate_clusters(). This
change would not imply serious performance drawbacks as usually image
is full of data or are at the end of the bitmap.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 18
Once we have repaired data_off field in the header we should update
s->data_start which is calculated on the base of it.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/block/parallels.c b/block/parallel
We should extend the bitmap if the file is extended and set the bit in
the image used bitmap once the cluster is allocated. Sanity check at
that moment also looks like a good idea.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 14 ++
1 file
be specifically noted that used bitmap must be recalculated
if data_off has been fixed during image consistency check.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 73 +++
block/parallels.h | 3 ++
2 files changed
the latter we write some content into the first one
and validate that fact.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
tests/qemu-iotests/tests/parallels-checks | 14 ++
tests/qemu-iotests/tests/parallels-checks.out | 16
2 files changed, 22
This patch contains test which minimally tests write-zeroes on top of
working discard.
The following checks are added:
* write 2 clusters, write-zero to the first allocated cluster
* write 2 cluster, write-zero to the half the first allocated cluster
Signed-off-by: Denis V. Lunev
Reviewed-by
At the beginning of the function we can return immediately until we
really allocate s->header.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 14 +-
1 file changed, 5 insertions(+), 9 deletions(-)
diff --git a/block/parallels.c b/bl
Replace 'space' representing the amount of data to preallocate with
'bytes'.
Rationale:
* 'space' at each place is converted to bytes
* the unit is more close to the variable name
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallel
* Discarding with backing stores is not supported by the format.
* There is no buffering/queueing of the discard operation.
* Only operations aligned to the cluster are supported.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 46
e and thus could be potentially
repaired. This could ruin testing process.
The patch forces read-only opening for reads. In that case repairing
is impossible.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
tests/qemu-iotests/tests/parallels-checks | 9 +
1 file changed, 5
This functionality is used twice already and next patch will add more
code with it.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 34 +-
1 file changed, 25 insertions(+), 9 deletions(-)
diff --git a/block/parallels.c b
We do not need to perform any deallocation/cleanup if wrong format is
detected.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/block/parallels.c b/block/parallels.c
index ae006e7fc7
Old code is ugly and contains tabulations. There are no functional
changes in this patch.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 36 +++-
1 file changed, 19 insertions(+), 17 deletions(-)
diff --git a/block
assignment that the value is in bytes.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 72 +--
1 file changed, 44 insertions(+), 28 deletions(-)
diff --git a/block/parallels.c b/block/parallels.c
index af7be427c9..ae006e7fc7
The test is quite similar with the original one for duplicated clusters.
There is the only difference in the operation which should fix the
image.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
tests/qemu-iotests/tests/parallels-checks | 36 +++
tests/qemu
We should free opts allocated through qemu_opts_create() at the end.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/block/parallels.c b/block/parallels.c
index 428f72de1c..af7be427c9 100644
--- a/block
tch 21: added GRAPH_RDLOCK specifier for parallels_co_pwrite_zeroes
--------
Denis V. Lunev (22):
parallels: fix formatting in bdrv_parallels initialization
parallels: mark driver as supporting CBT
parallels: fix memory leak in p
bdrv_co_can_store_new_dirty_bitmap() and is different.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/block/parallels.c b/block/parallels.c
index 2ebd8e1301..428f72de1c 100644
--- a/block/parallels.c
On 9/20/23 19:55, Stefan Hajnoczi wrote:
On Wed, 20 Sept 2023 at 05:22, Denis V. Lunev wrote:
The following changes since commit 4907644841e3200aea6475c0f72d3d987e9f3d93:
Merge tag 'mem-2023-09-19' of https://github.com/davidhildenbrand/qemu into
staging (2023-09-19 13:22:19 -
* Discarding with backing stores is not supported by the format.
* There is no buffering/queueing of the discard operation.
* Only operations aligned to the cluster are supported.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 46
-aligned to cluster offset (2 new clusters should be allocated)
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
tests/qemu-iotests/131 | 31 +++
tests/qemu-iotests/131.out | 38 ++
2 files changed, 69 insertions
The access to the bitmap is not optimized completely.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 51 ---
1 file changed, 39 insertions(+), 12 deletions(-)
diff --git a/block/parallels.c b/block/parallels.c
More conditions follows thus the check should be more scalable.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 21 ++---
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/block/parallels.c b/block/parallels.c
index bd26c8db63
The test is quite similar with the original one for duplicated clusters.
There is the only difference in the operation which should fix the
image.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
tests/qemu-iotests/tests/parallels-checks | 36 +++
tests/qemu
We should extend the bitmap if the file is extended and set the bit in
the image used bitmap once the cluster is allocated. Sanity check at
that moment also looks like a good idea.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 14 ++
1 file
At the beginning of the function we can return immediately until we
really allocate s->header.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 14 +-
1 file changed, 5 insertions(+), 9 deletions(-)
diff --git a/block/parallels.c b/bl
be specifically noted that used bitmap must be recalculated
if data_off has been fixed during image consistency check.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 73 +++
block/parallels.h | 3 ++
2 files changed
The zero flag is missed in the Parallels format specification. We can
resort to discard if we have no backing file.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 14 ++
1 file changed, 14 insertions(+)
diff --git a/block/parallels.c b/block
We do not need to perform any deallocation/cleanup if wrong format is
detected.
Signed-off-by: Denis V. Lunev
Reviewed-by: Alexander Ivanov
---
block/parallels.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/block/parallels.c b/block/parallels.c
index ae006e7fc7
1 - 100 of 981 matches
Mail list logo