[Devel] [PATCH VZ10 1/6] drivers/md/dm-qcow2: fix lower delta seek window clamp

Andrey Zhadchenko andrey.zhadchenko at virtuozzo.com
Mon Aug 10 15:29:55 MSK 2026


size may be smaller than old_qio->bi_iter.bi_size: we calculate it
beforehand with calc_front_qio_bytes().

https://virtuozzo.atlassian.net/browse/VSTOR-139407
Feature: dm-qcow2: block device over QCOW2 files driver
Signed-off-by: Andrey Zhadchenko <andrey.zhadchenko at virtuozzo.com>
---
 drivers/md/dm-qcow2-map.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/md/dm-qcow2-map.c b/drivers/md/dm-qcow2-map.c
index db21efb45e17a..542c7949321e5 100644
--- a/drivers/md/dm-qcow2-map.c
+++ b/drivers/md/dm-qcow2-map.c
@@ -4437,12 +4437,11 @@ static inline void seek_qio_next_clu(struct qio *qio, struct qcow2_map *map)
 static struct qio *advance_and_spawn_lower_seek_qio(struct qio *old_qio, u32 size)
 {
 	struct qio *new_qio;
-	loff_t start, old_end;
+	loff_t start;
 
 	start = to_bytes(old_qio->bi_iter.bi_sector);
-	old_end = start + old_qio->bi_iter.bi_size;
 
-	if (old_end > old_qio->qcow2->lower->hdr.size)
+	if (start + size > old_qio->qcow2->lower->hdr.size)
 		size = old_qio->qcow2->lower->hdr.size - start;
 
 	new_qio = alloc_seek_qio(old_qio->qcow2->lower, old_qio, start + size);
-- 
2.43.5



More information about the Devel mailing list