Commit e9d28d48 authored by liucheng74's avatar liucheng74 Committed by Tomasz Zawadzki
Browse files

bdev: Delete the UUID alias when bdev_name_add returns non-zero



The UUID alias should be deleted if it differs from the bdev
name when bdev_name_add failed in bdev_register. Otherwise
bdev_register will never succeed for the same UUID as
spdk_bdev_alias_add will return a non-zero error when
duplicate aliases exist.

Change-Id: Ib1e7eacaed53fa09197ccfdf438e4e4fec2314ce
Signed-off-by: default avatarliucheng74 <liuc@yusur.tech>
Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/26387


Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarTomasz Zawadzki <tomasz@tzawadzki.com>
Reviewed-by: default avatarChangpeng Liu <changpeliu@tencent.com>
parent 36791032
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -8245,6 +8245,9 @@ bdev_register(struct spdk_bdev *bdev)
	ret = bdev_name_add(&bdev->internal.bdev_name, bdev, bdev->name);
	if (ret != 0) {
		spdk_io_device_unregister(__bdev_to_io_dev(bdev), NULL);
		if (strcmp(bdev->name, uuid) != 0) {
			spdk_bdev_alias_del(bdev, uuid);
		}
		bdev_free_io_stat(bdev->internal.stat);
		spdk_spin_destroy(&bdev->internal.spinlock);
		free(bdev_name);