From d06f1c498f0ff9b7a1d597590e75e1018e0e7ef7 Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Wed, 30 Jun 2021 14:12:19 +0900 Subject: [PATCH] bdev: Hold mutex when adding bdev name to global bdev name tree We had not held mutex when adding bdev name to global bdev name tree in bdev_name_add(). Fix these in this patch. Signed-off-by: Shuhei Matsumoto Change-Id: I33813638f11da85263ec0c8849e566d247a45d43 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8524 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Ziye Yang Reviewed-by: Aleksey Marchuk Reviewed-by: Tomasz Zawadzki --- lib/bdev/bdev.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/bdev/bdev.c b/lib/bdev/bdev.c index 113328e79..77943fe9f 100644 --- a/lib/bdev/bdev.c +++ b/lib/bdev/bdev.c @@ -3262,7 +3262,10 @@ bdev_name_add(struct spdk_bdev_name *bdev_name, struct spdk_bdev *bdev, const ch bdev_name->bdev = bdev; + pthread_mutex_lock(&g_bdev_mgr.mutex); tmp = RB_INSERT(bdev_name_tree, &g_bdev_mgr.bdev_names, bdev_name); + pthread_mutex_unlock(&g_bdev_mgr.mutex); + if (tmp != NULL) { SPDK_ERRLOG("Bdev name %s already exists\n", name); free(bdev_name->name);