f91321559e
- kvm-linux-aio-add-IO_CMD_FDSYNC-command-support.patch [RHEL-42411] - kvm-Revert-monitor-use-aio_co_reschedule_self.patch [RHEL-34618 RHEL-38697] - kvm-aio-warn-about-iohandler_ctx-special-casing.patch [RHEL-34618 RHEL-38697] - kvm-block-crypto-create-ciphers-on-demand.patch [RHEL-36159] - kvm-crypto-block-drop-qcrypto_block_open-n_threads-argum.patch [RHEL-36159] - Resolves: RHEL-42411 (qemu-kvm: linux-aio: add support for IO_CMD_FDSYNC command) - Resolves: RHEL-34618 (aio=io_uring: Assertion failure `luringcb->co->ctx == s->aio_context' with block_resize) - Resolves: RHEL-38697 (aio=native: Assertion failure `laiocb->co->ctx == laiocb->ctx->aio_context' with block_resize) - Resolves: RHEL-36159 (qemu crash on Assertion `block->n_free_ciphers > 0' failed in guest installation with luks and iothread-vq-mapping)
229 lines
9.0 KiB
Diff
229 lines
9.0 KiB
Diff
From 117486e0820f135f191e19f8ebb8838a98b121c6 Mon Sep 17 00:00:00 2001
|
|
From: Stefan Hajnoczi <stefanha@redhat.com>
|
|
Date: Mon, 27 May 2024 11:58:51 -0400
|
|
Subject: [PATCH 5/5] crypto/block: drop qcrypto_block_open() n_threads
|
|
argument
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
RH-Author: Stefan Hajnoczi <stefanha@redhat.com>
|
|
RH-MergeRequest: 251: block/crypto: create ciphers on demand
|
|
RH-Jira: RHEL-36159
|
|
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
|
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
RH-Commit: [2/2] 68290935b174b1f2b76aa857a926da9011e54abe (stefanha/centos-stream-qemu-kvm)
|
|
|
|
The n_threads argument is no longer used since the previous commit.
|
|
Remove it.
|
|
|
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
Message-ID: <20240527155851.892885-3-stefanha@redhat.com>
|
|
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
|
|
Acked-by: Daniel P. Berrangé <berrange@redhat.com>
|
|
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
|
(cherry picked from commit 3ab0f063e58ed9224237d69c4211ca83335164c4)
|
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
---
|
|
block/crypto.c | 1 -
|
|
block/qcow.c | 2 +-
|
|
block/qcow2.c | 5 ++---
|
|
crypto/block-luks.c | 1 -
|
|
crypto/block-qcow.c | 6 ++----
|
|
crypto/block.c | 3 +--
|
|
crypto/blockpriv.h | 1 -
|
|
include/crypto/block.h | 2 --
|
|
tests/unit/test-crypto-block.c | 4 ----
|
|
9 files changed, 6 insertions(+), 19 deletions(-)
|
|
|
|
diff --git a/block/crypto.c b/block/crypto.c
|
|
index 21eed909c1..4eed3ffa6a 100644
|
|
--- a/block/crypto.c
|
|
+++ b/block/crypto.c
|
|
@@ -363,7 +363,6 @@ static int block_crypto_open_generic(QCryptoBlockFormat format,
|
|
block_crypto_read_func,
|
|
bs,
|
|
cflags,
|
|
- 1,
|
|
errp);
|
|
|
|
if (!crypto->block) {
|
|
diff --git a/block/qcow.c b/block/qcow.c
|
|
index ca8e1d5ec8..c2f89db055 100644
|
|
--- a/block/qcow.c
|
|
+++ b/block/qcow.c
|
|
@@ -211,7 +211,7 @@ static int qcow_open(BlockDriverState *bs, QDict *options, int flags,
|
|
cflags |= QCRYPTO_BLOCK_OPEN_NO_IO;
|
|
}
|
|
s->crypto = qcrypto_block_open(crypto_opts, "encrypt.",
|
|
- NULL, NULL, cflags, 1, errp);
|
|
+ NULL, NULL, cflags, errp);
|
|
if (!s->crypto) {
|
|
ret = -EINVAL;
|
|
goto fail;
|
|
diff --git a/block/qcow2.c b/block/qcow2.c
|
|
index 0e8b2f7518..0ebd455dc8 100644
|
|
--- a/block/qcow2.c
|
|
+++ b/block/qcow2.c
|
|
@@ -321,7 +321,7 @@ qcow2_read_extensions(BlockDriverState *bs, uint64_t start_offset,
|
|
}
|
|
s->crypto = qcrypto_block_open(s->crypto_opts, "encrypt.",
|
|
qcow2_crypto_hdr_read_func,
|
|
- bs, cflags, QCOW2_MAX_THREADS, errp);
|
|
+ bs, cflags, errp);
|
|
if (!s->crypto) {
|
|
return -EINVAL;
|
|
}
|
|
@@ -1707,8 +1707,7 @@ qcow2_do_open(BlockDriverState *bs, QDict *options, int flags,
|
|
cflags |= QCRYPTO_BLOCK_OPEN_NO_IO;
|
|
}
|
|
s->crypto = qcrypto_block_open(s->crypto_opts, "encrypt.",
|
|
- NULL, NULL, cflags,
|
|
- QCOW2_MAX_THREADS, errp);
|
|
+ NULL, NULL, cflags, errp);
|
|
if (!s->crypto) {
|
|
ret = -EINVAL;
|
|
goto fail;
|
|
diff --git a/crypto/block-luks.c b/crypto/block-luks.c
|
|
index 3357852c0a..5b777c15d3 100644
|
|
--- a/crypto/block-luks.c
|
|
+++ b/crypto/block-luks.c
|
|
@@ -1189,7 +1189,6 @@ qcrypto_block_luks_open(QCryptoBlock *block,
|
|
QCryptoBlockReadFunc readfunc,
|
|
void *opaque,
|
|
unsigned int flags,
|
|
- size_t n_threads,
|
|
Error **errp)
|
|
{
|
|
QCryptoBlockLUKS *luks = NULL;
|
|
diff --git a/crypto/block-qcow.c b/crypto/block-qcow.c
|
|
index 02305058e3..42e9556e42 100644
|
|
--- a/crypto/block-qcow.c
|
|
+++ b/crypto/block-qcow.c
|
|
@@ -44,7 +44,6 @@ qcrypto_block_qcow_has_format(const uint8_t *buf G_GNUC_UNUSED,
|
|
static int
|
|
qcrypto_block_qcow_init(QCryptoBlock *block,
|
|
const char *keysecret,
|
|
- size_t n_threads,
|
|
Error **errp)
|
|
{
|
|
char *password;
|
|
@@ -100,7 +99,6 @@ qcrypto_block_qcow_open(QCryptoBlock *block,
|
|
QCryptoBlockReadFunc readfunc G_GNUC_UNUSED,
|
|
void *opaque G_GNUC_UNUSED,
|
|
unsigned int flags,
|
|
- size_t n_threads,
|
|
Error **errp)
|
|
{
|
|
if (flags & QCRYPTO_BLOCK_OPEN_NO_IO) {
|
|
@@ -115,7 +113,7 @@ qcrypto_block_qcow_open(QCryptoBlock *block,
|
|
return -1;
|
|
}
|
|
return qcrypto_block_qcow_init(block, options->u.qcow.key_secret,
|
|
- n_threads, errp);
|
|
+ errp);
|
|
}
|
|
}
|
|
|
|
@@ -135,7 +133,7 @@ qcrypto_block_qcow_create(QCryptoBlock *block,
|
|
return -1;
|
|
}
|
|
/* QCow2 has no special header, since everything is hardwired */
|
|
- return qcrypto_block_qcow_init(block, options->u.qcow.key_secret, 1, errp);
|
|
+ return qcrypto_block_qcow_init(block, options->u.qcow.key_secret, errp);
|
|
}
|
|
|
|
|
|
diff --git a/crypto/block.c b/crypto/block.c
|
|
index ba6d1cebc7..3bcc4270c3 100644
|
|
--- a/crypto/block.c
|
|
+++ b/crypto/block.c
|
|
@@ -53,7 +53,6 @@ QCryptoBlock *qcrypto_block_open(QCryptoBlockOpenOptions *options,
|
|
QCryptoBlockReadFunc readfunc,
|
|
void *opaque,
|
|
unsigned int flags,
|
|
- size_t n_threads,
|
|
Error **errp)
|
|
{
|
|
QCryptoBlock *block = g_new0(QCryptoBlock, 1);
|
|
@@ -73,7 +72,7 @@ QCryptoBlock *qcrypto_block_open(QCryptoBlockOpenOptions *options,
|
|
block->driver = qcrypto_block_drivers[options->format];
|
|
|
|
if (block->driver->open(block, options, optprefix,
|
|
- readfunc, opaque, flags, n_threads, errp) < 0)
|
|
+ readfunc, opaque, flags, errp) < 0)
|
|
{
|
|
g_free(block);
|
|
return NULL;
|
|
diff --git a/crypto/blockpriv.h b/crypto/blockpriv.h
|
|
index 4bf6043d5d..b8f77cb5eb 100644
|
|
--- a/crypto/blockpriv.h
|
|
+++ b/crypto/blockpriv.h
|
|
@@ -59,7 +59,6 @@ struct QCryptoBlockDriver {
|
|
QCryptoBlockReadFunc readfunc,
|
|
void *opaque,
|
|
unsigned int flags,
|
|
- size_t n_threads,
|
|
Error **errp);
|
|
|
|
int (*create)(QCryptoBlock *block,
|
|
diff --git a/include/crypto/block.h b/include/crypto/block.h
|
|
index 92e823c9f2..5b5d039800 100644
|
|
--- a/include/crypto/block.h
|
|
+++ b/include/crypto/block.h
|
|
@@ -76,7 +76,6 @@ typedef enum {
|
|
* @readfunc: callback for reading data from the volume
|
|
* @opaque: data to pass to @readfunc
|
|
* @flags: bitmask of QCryptoBlockOpenFlags values
|
|
- * @n_threads: allow concurrent I/O from up to @n_threads threads
|
|
* @errp: pointer to a NULL-initialized error object
|
|
*
|
|
* Create a new block encryption object for an existing
|
|
@@ -113,7 +112,6 @@ QCryptoBlock *qcrypto_block_open(QCryptoBlockOpenOptions *options,
|
|
QCryptoBlockReadFunc readfunc,
|
|
void *opaque,
|
|
unsigned int flags,
|
|
- size_t n_threads,
|
|
Error **errp);
|
|
|
|
typedef enum {
|
|
diff --git a/tests/unit/test-crypto-block.c b/tests/unit/test-crypto-block.c
|
|
index 6cfc817a92..42cfab6067 100644
|
|
--- a/tests/unit/test-crypto-block.c
|
|
+++ b/tests/unit/test-crypto-block.c
|
|
@@ -303,7 +303,6 @@ static void test_block(gconstpointer opaque)
|
|
test_block_read_func,
|
|
&header,
|
|
0,
|
|
- 1,
|
|
NULL);
|
|
g_assert(blk == NULL);
|
|
|
|
@@ -312,7 +311,6 @@ static void test_block(gconstpointer opaque)
|
|
test_block_read_func,
|
|
&header,
|
|
QCRYPTO_BLOCK_OPEN_NO_IO,
|
|
- 1,
|
|
&error_abort);
|
|
|
|
g_assert(qcrypto_block_get_cipher(blk) == NULL);
|
|
@@ -327,7 +325,6 @@ static void test_block(gconstpointer opaque)
|
|
test_block_read_func,
|
|
&header,
|
|
0,
|
|
- 1,
|
|
&error_abort);
|
|
g_assert(blk);
|
|
|
|
@@ -384,7 +381,6 @@ test_luks_bad_header(gconstpointer data)
|
|
test_block_read_func,
|
|
&buf,
|
|
0,
|
|
- 1,
|
|
&err);
|
|
g_assert(!blk);
|
|
g_assert(err);
|
|
--
|
|
2.39.3
|
|
|