Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
2c3feaf
Import blktap-3.55.5-2.xs8.src.rpm
stormi Mar 28, 2025
b9904a2
Merge branch 'XS-8.3' into 8.3-rebase-XS-20250328
stormi Mar 28, 2025
8d0e97e
Remove unneeded patch from blktap.spec
AnthoineB Apr 7, 2025
107179d
Merge pull request #8 from xcp-ng-rpms/8.3-rebase-XS-20250328
glehmann Apr 17, 2025
309768d
Set team owner
glehmann Apr 29, 2025
d39b316
Drop useless autogen build-dep
ydirson Oct 29, 2024
286e5e1
Import blktap-3.55.5-3.xs8.src.rpm
ydirson Jul 10, 2025
f7c57be
Merge pull request #9 from xcp-ng-rpms/drop-autogen
Nambrok Jul 31, 2025
d59c0b9
Release 3.55.5-2.3
Wescoeur Jul 31, 2025
e1b94d3
Merge pull request #11 from xcp-ng-rpms/ran-fix-negative-coalesce-size
Wescoeur Jul 31, 2025
5e0695c
Import mk/blktap.spec.in from v3.55.5
ydirson Jul 11, 2025
ca1f3e2
Import blktap-3.55.5-4.xs8.src.rpm
ydirson Jul 10, 2025
e23bbbd
Import blktap-3.55.5-6.xs8.src.rpm
AnthoineB Sep 8, 2025
e32e080
Merge branch 'XS-8.3'
AnthoineB Sep 8, 2025
8f70d8a
Merge pull request #12 from xcp-ng-rpms/8.3-rebase-XS-20250908
stormi Sep 19, 2025
608163e
spec: Rebuild with openssl-3
rzr Jan 8, 2026
de4e9ff
Merge pull request #13 from xcp-ng-rpms/pcoval/review/master
rzr Feb 23, 2026
fc4cb33
Prevent segfault of vhd-util scan on VHD with corrupt footer
Millefeuille42 Dec 19, 2025
25546c8
Merge pull request #14 from xcp-ng-rpms/mlr/2707-fix-segfault-of-vhd-…
Wescoeur Feb 26, 2026
4651c8c
Import blktap-3.55.5-7.xs8.src.rpm
rzr Mar 31, 2026
fae7d5f
Add QCOW2 support
Nambrok Mar 27, 2025
0de4761
Merge pull request #18 from xcp-ng-rpms/8.3-qcow2
Nambrok Apr 8, 2026
7690a4a
Fix scriptlet to use udev rule aligned to mdadm
rzr Apr 1, 2026
aaa4e87
Merge pull request #17 from xcp-ng-rpms/XCPNG-3024/8.3
rzr Apr 15, 2026
7ffbf37
Release 3.55.5-6.6: Dual license blktap package with GPLv2
AnthoineB Apr 24, 2026
faaa7e6
Merge pull request #19 from xcp-ng-rpms/gplv2
AnthoineB Apr 24, 2026
cab57a8
qcow2: fix coalesce
AnthoineB Apr 27, 2026
a9096b4
Merge pull request #20 from xcp-ng-rpms/qcow2-fix-coalesce
Nambrok Apr 30, 2026
0e45979
Import blktap-3.55.5-9.xs8.src.rpm
AnthoineB May 20, 2026
65af429
Merge branch 'XS-8.3' into master
AnthoineB May 21, 2026
4102ba6
Merge remote-tracking branch 'origin/8.3'
AnthoineB May 26, 2026
2f7306c
Merge pull request #21 from xcp-ng-rpms/abo-blktap-rpm-3.55.5-9
AnthoineB May 27, 2026
a39d95f
Release 3.55.5-9.2: Qcow2 fixes
AnthoineB Jun 18, 2026
86c7825
Merge pull request #24 from xcp-ng-rpms/8.3-v3.55.5-9.2-qcow2-fixes
AnthoineB Jun 26, 2026
b777c63
Release 3.55.5-9.3
Millefeuille42 Jul 3, 2026
91e54af
Merge pull request #25 from xcp-ng-rpms/mlr/pass-error-details-up-to-…
Millefeuille42 Jul 6, 2026
519a498
fixup typo introduced in Release 3.55.5-9.3
Millefeuille42 Jul 6, 2026
97c9edf
Merge pull request #26 from xcp-ng-rpms/mlr/fix-typo
Millefeuille42 Jul 6, 2026
5115f9b
Release 3.55.5-9.4
AnthoineB Aug 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
* @xcp-ng-rpms/storage
* @xcp-ng-rpms/os-platform-release
* @xcp-ng-rpms/storage @xcp-ng-rpms/os-platform-release

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
From 7c168ec7818aa74bf81ae27ddd808c227b1d2261 Mon Sep 17 00:00:00 2001
From d8cda8eb7a7404102b10a05e1226129e5c424d0e Mon Sep 17 00:00:00 2001
From: Ronan Abhamon <ronan.abhamon@vates.tech>
Date: Wed, 18 Dec 2024 16:55:26 +0100
Subject: [PATCH 2/2] Add an option to use backup footer when vhd-util query is
Subject: [PATCH] Add an option to use backup footer when vhd-util query is
called

This option already exists on td-util but it was not implemented
on vhd-util.

Signed-off-by: Ronan Abhamon <ronan.abhamon@vates.tech>
---
vhd/lib/vhd-util-query.c | 36 ++++++++++++++++++++----------------
1 file changed, 20 insertions(+), 16 deletions(-)
vhd/lib/vhd-util-query.c | 38 +++++++++++++++++++++-----------------
1 file changed, 21 insertions(+), 17 deletions(-)

diff --git a/vhd/lib/vhd-util-query.c b/vhd/lib/vhd-util-query.c
index 0cd0416..13bd563 100644
index 0cd04166..3aca668c 100644
--- a/vhd/lib/vhd-util-query.c
+++ b/vhd/lib/vhd-util-query.c
@@ -43,29 +43,29 @@
Expand Down Expand Up @@ -80,6 +80,15 @@ index 0cd0416..13bd563 100644
if (err) {
printf("error opening %s: %d\n", name, err);
return err;
@@ -207,7 +210,7 @@ vhd_util_query(int argc, char **argv)
max_size = vhd.header.max_bat_size << (VHD_BLOCK_SHIFT - 20);
printf("%"PRIu64"\n", max_size);
}
-
+
vhd_close(&vhd);
return err;

@@ -218,6 +221,7 @@ usage:
"[-S print max virtual size (MB) for fast resize] "
"[-a print allocated block count] "
Expand Down
24 changes: 24 additions & 0 deletions SOURCES/0002-tapdisk-deduplicate-double-assignment-code.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
From da68419a7008aa37563ffe5b3c7fce5b455edb62 Mon Sep 17 00:00:00 2001
From: Anthoine Bourgeois <anthoine.bourgeois@vates.tech>
Date: Thu, 16 Jan 2025 14:09:07 +0100
Subject: [PATCH] tapdisk: deduplicate double assignment code

No functional change expected.

Signed-off-by: Anthoine Bourgeois <anthoine.bourgeois@vates.tech>
---
drivers/tapdisk-server.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/drivers/tapdisk-server.c b/drivers/tapdisk-server.c
index 27a42198..a165d2f2 100644
--- a/drivers/tapdisk-server.c
+++ b/drivers/tapdisk-server.c
@@ -788,7 +788,6 @@ tapdisk_server_complete(void)
server.rw_backend = get_libaio_backend();
server.ro_backend = get_libaio_backend();

- server.rw_backend = get_libaio_backend();
err = tapdisk_server_init_aio();
if (err)
goto fail;
31 changes: 31 additions & 0 deletions SOURCES/0003-blktap-fix-a-typo-in-libaio-backend.h-header.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
From 45658a3d9f323a6f1bc512297bebf487287d5f67 Mon Sep 17 00:00:00 2001
From: Anthoine Bourgeois <anthoine.bourgeois@vates.tech>
Date: Thu, 16 Jan 2025 14:09:11 +0100
Subject: [PATCH] blktap: fix a typo in libaio-backend.h header

No functional change expected.

Signed-off-by: Anthoine Bourgeois <anthoine.bourgeois@vates.tech>
---
drivers/libaio-backend.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/libaio-backend.h b/drivers/libaio-backend.h
index 2759307d..21707c4a 100644
--- a/drivers/libaio-backend.h
+++ b/drivers/libaio-backend.h
@@ -29,7 +29,7 @@
*/

#ifndef LIBAIO_BACKEND_H
-#define LIBAIO_BACLEND_H
+#define LIBAIO_BACKEND_H

#include <libaio.h>

@@ -43,4 +43,4 @@ enum {

struct backend* get_libaio_backend();

-#endif /* LIBAIO_BACLEND_H */
+#endif /* LIBAIO_BACKEND_H */
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
From 2de5a44347e224ec3be404860d5d98e6fba1b1ff Mon Sep 17 00:00:00 2001
From: Anthoine Bourgeois <anthoine.bourgeois@vates.tech>
Date: Mon, 20 Jan 2025 14:45:35 +0100
Subject: [PATCH] tapdisk: document final param in
__tapdisk_xenblkif_request_cb comment

No functional change expected.

Signed-off-by: Anthoine Bourgeois <anthoine.bourgeois@vates.tech>
---
drivers/td-req.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/td-req.c b/drivers/td-req.c
index e1ce9fd7..178985f3 100644
--- a/drivers/td-req.c
+++ b/drivers/td-req.c
@@ -591,7 +591,7 @@ out:
* @param vreq the completed request
* @param error status of the request
* @param token token previously associated with this request
- * @param final TODO ?
+ * @param final controls whether the other end should be notified
*/
static inline void
__tapdisk_xenblkif_request_cb(struct td_vbd_request * const vreq,
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
From 27d453c5eb2f025b10e7c32ae9239e9d18ce66ab Mon Sep 17 00:00:00 2001
From: Anthoine Bourgeois <anthoine.bourgeois@vates.tech>
Date: Wed, 15 Jan 2025 16:33:02 +0100
Subject: [PATCH] tapdisk: use tapdisk_vbd_for_each_blkif abstraction

No functional change expected.

Signed-off-by: Anthoine Bourgeois <anthoine.bourgeois@vates.tech>
---
drivers/tapdisk-control.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/tapdisk-control.c b/drivers/tapdisk-control.c
index c8b9d826..506b203d 100644
--- a/drivers/tapdisk-control.c
+++ b/drivers/tapdisk-control.c
@@ -898,7 +898,7 @@ tapdisk_control_close_image(struct tapdisk_ctl_conn *conn,
tapdisk_nbdserver_pause(vbd->nbdserver_new, true);

err = 0;
- list_for_each_entry_safe(blkif, _blkif, &vbd->rings, entry) {
+ tapdisk_vbd_for_each_blkif(vbd, blkif, _blkif) {

DPRINTF("implicitly disconnecting ring %p domid=%d, devid=%d\n",
blkif, blkif->domid, blkif->devid);
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
From 6ed8043712dbc18635fa10d879a9a04eaba7eb2c Mon Sep 17 00:00:00 2001
From: Anthoine Bourgeois <anthoine.bourgeois@vates.tech>
Date: Mon, 20 Jan 2025 18:22:07 +0100
Subject: [PATCH] blkif: Avoid use-after-free on BLKIF_OP_WRITE_BARRIER request

Function tapdisk_xenblkif_make_vbd_request will release
tapreq->msg and reinsert it in the reqs_free array if the
request is a BLKIF_OP_WRITE_BARRIER without any segment.
But tapdisk_xenblkif_queue_request will use it to check if
it must send the request to VBD layer.

This bug triggers a crash when DEBUG is defined in td-reqs.c
because DEBUG will poison the msg memory.
Without DEBUG, the code reads freed memory that still contains
unchanged data.

Signed-off-by: Anthoine Bourgeois <anthoine.bourgeois@vates.tech>
---
drivers/td-req.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/drivers/td-req.c b/drivers/td-req.c
index 178985f3..c35b02c6 100644
--- a/drivers/td-req.c
+++ b/drivers/td-req.c
@@ -190,17 +190,21 @@ static void
tapdisk_xenblkif_free_request(struct td_xenblkif * const blkif,
struct td_xenblkif_req * const tapreq)
{
+ int put_bufcache;
+
ASSERT(blkif);
ASSERT(tapreq);
ASSERT(blkif->n_reqs_free < blkif->ring_size);

+ put_bufcache = tapreq->msg.nr_segments != 0;
+
#ifdef DEBUG
memset(&tapreq->msg, BLKIF_MSG_POISON, sizeof(tapreq->msg));
#endif

blkif->reqs_free[blkif->ring_size - (++blkif->n_reqs_free)] = &tapreq->msg;

- if (likely(tapreq->msg.nr_segments))
+ if (likely(put_bufcache))
td_xenblkif_bufcache_put(blkif, tapreq->vma);
}

@@ -829,11 +833,19 @@ tapdisk_xenblkif_queue_request(struct td_xenblkif * const blkif,
blkif_request_t *msg, struct td_xenblkif_req *tapreq)
{
int err;
+ int queue_request;

ASSERT(blkif);
ASSERT(msg);
ASSERT(tapreq);

+ queue_request = tapreq->msg.nr_segments != 0;
+
+ /*
+ * Do not use tapreq after tapdisk_xenblkif_make_vbd_request
+ * because this function can release tapreq->msg and reinsert it
+ * in the reqs_free array.
+ */
err = tapdisk_xenblkif_make_vbd_request(blkif, tapreq);
if (unlikely(err)) {
/* TODO log error */
@@ -841,7 +853,7 @@ tapdisk_xenblkif_queue_request(struct td_xenblkif * const blkif,
return err;
}

- if (likely(tapreq->msg.nr_segments)) {
+ if (likely(queue_request)) {
err = tapdisk_vbd_queue_request(blkif->vbd, &tapreq->vreq);
if (unlikely(err)) {
/* TODO log error */
Loading