]> git.proxmox.com Git - pve-qemu.git/blame - debian/patches/extra/0011-block-Fix-AioContext-locking-in-qmp_block_resize.patch
bump version to 8.1.2-6
[pve-qemu.git] / debian / patches / extra / 0011-block-Fix-AioContext-locking-in-qmp_block_resize.patch
CommitLineData
dfac4f35
FE
1From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2From: Kevin Wolf <kwolf@redhat.com>
3Date: Fri, 8 Dec 2023 13:43:52 +0100
4Subject: [PATCH] block: Fix AioContext locking in qmp_block_resize()
5
6The AioContext must be unlocked before calling blk_co_unref(), because
7it takes the AioContext lock internally in blk_unref_bh(), which is
8scheduled in the main thread. If we don't unlock, the AioContext is
9locked twice and nested event loops such as in bdrv_graph_wrlock() will
10deadlock.
11
12Cc: qemu-stable@nongnu.org
13Fixes: https://issues.redhat.com/browse/RHEL-15965
14Fixes: 0c7d204f50c382c6baac8c94bd57af4a022b3888
15Signed-off-by: Kevin Wolf <kwolf@redhat.com>
16(picked up from https://lists.nongnu.org/archive/html/qemu-devel/2023-12/msg01102.html)
17Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
18---
19 blockdev.c | 3 ++-
20 1 file changed, 2 insertions(+), 1 deletion(-)
21
22diff --git a/blockdev.c b/blockdev.c
23index e6eba61484..c28462a633 100644
24--- a/blockdev.c
25+++ b/blockdev.c
26@@ -2361,8 +2361,9 @@ void coroutine_fn qmp_block_resize(const char *device, const char *node_name,
27
28 bdrv_co_lock(bs);
29 bdrv_drained_end(bs);
30- blk_co_unref(blk);
31 bdrv_co_unlock(bs);
32+
33+ blk_co_unref(blk);
34 }
35
36 void qmp_block_stream(const char *job_id, const char *device,