Skip to content

Commit 28a547a

Browse files
committed
Release 3.55.5-9.4
- Fix commit command with cbt enabled. Signed-off-by: Anthoine Bourgeois <anthoine.bourgeois@vates.tech>
1 parent 97c9edf commit 28a547a

2 files changed

Lines changed: 69 additions & 1 deletion

File tree

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
From 7034c039d092ade9ce6eef37f1a249289fd42a88 Mon Sep 17 00:00:00 2001
2+
From: Mathieu Labourier <mathieu.labourier@vates.tech>
3+
Date: Mon, 17 Aug 2026 15:08:15 +0200
4+
Subject: [PATCH] fix: skip cbtlog disks in commit related operations
5+
6+
This prevents a bug where tapdisk will return a cbtlog
7+
disk in commit related operations, causing them to fail early
8+
since the cbtlog driver doesn't include a commit action
9+
10+
Signed-off-by: Mathieu Labourier <mathieu.labourier@vates.tech>
11+
---
12+
drivers/tapdisk-vbd.c | 18 +++++++++++++++---
13+
1 file changed, 15 insertions(+), 3 deletions(-)
14+
15+
diff --git a/drivers/tapdisk-vbd.c b/drivers/tapdisk-vbd.c
16+
index 8fcabbbd..7b5171cd 100644
17+
--- a/drivers/tapdisk-vbd.c
18+
+++ b/drivers/tapdisk-vbd.c
19+
@@ -167,6 +167,18 @@ tapdisk_vbd_first_image(td_vbd_t *vbd)
20+
return image;
21+
}
22+
23+
+static inline td_image_t *
24+
+tapdisk_vbd_first_non_log_image(td_vbd_t *vbd)
25+
+{
26+
+ td_image_t *image = NULL, *tmp;
27+
+
28+
+ tapdisk_vbd_for_each_image(vbd, image, tmp)
29+
+ if (image->type != DISK_TYPE_LOG)
30+
+ return image;
31+
+
32+
+ return image;
33+
+}
34+
+
35+
static inline td_image_t *
36+
tapdisk_vbd_last_image(td_vbd_t *vbd)
37+
{
38+
@@ -1146,7 +1158,7 @@ tapdisk_vbd_commit(td_vbd_t *vbd, const char *name)
39+
INFO("commit %s\n", name);
40+
}
41+
42+
- err = td_commit(tapdisk_vbd_first_image(vbd), name);
43+
+ err = td_commit(tapdisk_vbd_first_non_log_image(vbd), name);
44+
45+
INFO("commit started (%d)\n", err);
46+
47+
@@ -1162,7 +1174,7 @@ tapdisk_vbd_query_commit_job(td_vbd_t *vbd, td_query_t *query)
48+
INFO("query commit job.\n");
49+
}
50+
51+
- err = td_query_commit_job(tapdisk_vbd_first_image(vbd), query);
52+
+ err = td_query_commit_job(tapdisk_vbd_first_non_log_image(vbd), query);
53+
54+
INFO("query commit job (%d)\n", err);
55+
56+
@@ -1178,7 +1190,7 @@ tapdisk_vbd_cancel_commit_job(td_vbd_t *vbd, bool wait)
57+
INFO("cancel commit job.\n");
58+
}
59+
60+
- err = td_cancel_commit_job(tapdisk_vbd_first_image(vbd), wait);
61+
+ err = td_cancel_commit_job(tapdisk_vbd_first_non_log_image(vbd), wait);
62+
63+
INFO("cancel commit job (%d)\n", err);
64+

SPECS/blktap.spec

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
Summary: blktap user space utilities
88
Name: blktap
99
Version: 3.55.5
10-
Release: %{?xsrel}.3%{?dist}
10+
Release: %{?xsrel}.4%{?dist}
1111
License: BSD AND GPL-2.0-or-later
1212
Group: System/Hypervisor
1313
URL: https://github.com/xapi-project/blktap
@@ -88,6 +88,7 @@ Patch1042: 0042-tapdisk-support-new-cancel-command.patch
8888
Patch1043: 0043-qcow2-support-cancel-command.patch
8989
Patch1044: 0044-libqcow2-fix-abort-commit-without-crash.patch
9090
Patch1045: 0045-feat-pass-error-details-up-to-tap-ctl.patch
91+
Patch1046: 0046-fix-skip-cbtlog-disks-in-commit-related-operations.patch
9192

9293
%description
9394
Blktap creates kernel block devices which realize I/O requests to
@@ -217,6 +218,9 @@ without requiring other libraries
217218
%{_libdir}/libblockcrypto.so.*
218219

219220
%changelog
221+
* Mon Aug 24 2026 Anthoine Bourgeois <anthoine.bourgeois@vates.tech> - 3.55.5-9.4
222+
- Filter cbtlog disk in coalesce commands to avoid ENOTSUPP error and un-coalescable VDIs.
223+
220224
* Fri Jul 03 2026 Mathieu Labourier <mathieu.labourier@vates.tech> - 3.55.5-9.3
221225
- Pass error details up to tap-ctl.
222226
* The error printed by tap-ctl is now clearer and parsable for tools like SM.

0 commit comments

Comments
 (0)