From a6810b671c93eef037278c45b1f607c3dafd1894 Mon Sep 17 00:00:00 2001 From: Zht-Try Date: Fri, 5 Jan 2024 16:44:58 +0800 Subject: [PATCH] Fix deadlock due to lock sequence in bdev_unregister_unsafe --- ...-to-lock-sequence-in-bdev_unregister.patch | 27 +++++++++++++++++++ spdk.spec | 6 ++++- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 0045-Fix-deadlock-due-to-lock-sequence-in-bdev_unregister.patch diff --git a/0045-Fix-deadlock-due-to-lock-sequence-in-bdev_unregister.patch b/0045-Fix-deadlock-due-to-lock-sequence-in-bdev_unregister.patch new file mode 100644 index 0000000..5e6aa34 --- /dev/null +++ b/0045-Fix-deadlock-due-to-lock-sequence-in-bdev_unregister.patch @@ -0,0 +1,27 @@ +From 0489d5319ea6a0918c1bc7bd9c3d1da61543467b Mon Sep 17 00:00:00 2001 +From: zhanghongtao +Date: Mon, 18 Dec 2023 19:52:56 +0800 +Subject: [PATCH] Fix deadlock due to lock sequence in bdev_unregister_unsafe + +Signed-off-by: Hongtao Zhang +--- + lib/bdev/bdev.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/bdev/bdev.c b/lib/bdev/bdev.c +index 4c63e8b..64027c6 100644 +--- a/lib/bdev/bdev.c ++++ b/lib/bdev/bdev.c +@@ -5758,8 +5758,8 @@ bdev_unregister_unsafe(struct spdk_bdev *bdev) + pthread_mutex_unlock(&bdev->internal.mutex); + pthread_mutex_unlock(&g_bdev_mgr.mutex); + _remove_notify(desc); +- pthread_mutex_lock(&bdev->internal.mutex); + pthread_mutex_lock(&g_bdev_mgr.mutex); ++ pthread_mutex_lock(&bdev->internal.mutex); + } + + /* If there are no descriptors, proceed removing the bdev */ +-- +2.27.0 + diff --git a/spdk.spec b/spdk.spec index ecbe2d6..685129a 100644 --- a/spdk.spec +++ b/spdk.spec @@ -4,7 +4,7 @@ Name: spdk Version: 21.01.1 -Release: 18 +Release: 19 Summary: Set of libraries and utilities for high performance user-mode storage License: BSD and MIT URL: http://spdk.io @@ -53,6 +53,7 @@ Patch41: 0041-barrier-LOONGARCH-memory-barriers.patch Patch42: 0042-nvme-pcie-add-memory-barrier-for-LOONGARCH.patch Patch43: 0043-build-Specify-the-target-build-architecture-for-LOON.patch Patch44: 0044-lib-bdev-return-error-when-failing-to-get-resource.patch +Patch45: 0045-Fix-deadlock-due-to-lock-sequence-in-bdev_unregister.patch %define package_version %{version}-%{release} @@ -229,6 +230,9 @@ mv doc/output/html/ %{install_docdir} %changelog +* Thu Jan 4 2024 Hongtao Zhang - 21.01.1-19 +- Fix deadlock due to lock sequence in bdev_unregister_unsafe + * Thu Dec 14 2023 Hongtao Zhang - 21.01.1-18 - Return error when failing to get resource