Commit 652a8859 authored by Artur Paszkiewicz's avatar Artur Paszkiewicz Committed by Tomasz Zawadzki
Browse files

bdev/passthru: fix creating pt bdev with specified uuid



The generated UUID would overwrite the UUID specified in the RPC
argument.

Signed-off-by: default avatarArtur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: Ifc65c22e23cbf8c417d5145743a8aea0a32945cc
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23201


Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
parent 18506bf1
Loading
Loading
Loading
Loading
+14 −10
Original line number Diff line number Diff line
@@ -620,7 +620,6 @@ vbdev_passthru_register(const char *bdev_name)
			break;
		}
		pt_node->pt_bdev.product_name = "passthru";
		spdk_uuid_copy(&pt_node->pt_bdev.uuid, &name->uuid);

		/* The base bdev that we're attaching to. */
		rc = spdk_bdev_open_ext(bdev_name, true, vbdev_passthru_base_bdev_event_cb,
@@ -638,6 +637,10 @@ vbdev_passthru_register(const char *bdev_name)
		bdev = spdk_bdev_desc_get_bdev(pt_node->base_desc);
		pt_node->base_bdev = bdev;

		if (!spdk_uuid_is_null(&name->uuid)) {
			/* Use the configured UUID */
			spdk_uuid_copy(&pt_node->pt_bdev.uuid, &name->uuid);
		} else {
			/* Generate UUID based on namespace UUID + base bdev UUID. */
			rc = spdk_uuid_generate_sha1(&pt_node->pt_bdev.uuid, &ns_uuid,
						     (const char *)&pt_node->base_bdev->uuid, sizeof(struct spdk_uuid));
@@ -648,6 +651,7 @@ vbdev_passthru_register(const char *bdev_name)
				free(pt_node);
				break;
			}
		}

		/* Copy some properties from the underlying base bdev. */
		pt_node->pt_bdev.write_cache = bdev->write_cache;