Commit 19f5787c authored by Artur Paszkiewicz's avatar Artur Paszkiewicz Committed by Tomasz Zawadzki
Browse files

raid: skip configured base bdevs in sb examine



If a bdev with sb is added while raid_bdev_examine_others() is examining
the base bdevs it may try to configure a base bdev again. Prevent it but
allow raid_bdev_examine_others() to continue.

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


Reviewed-by: default avatarSebastian Brzezinka <sebastian.brzezinka@intel.com>
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarKrzysztof Karas <krzysztof.karas@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
parent 3b9baa5f
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -3574,7 +3574,7 @@ raid_bdev_examine_others(void *_ctx, int status)
	struct raid_base_bdev_info *base_info;
	char uuid_str[SPDK_UUID_STRING_LEN];

	if (status != 0) {
	if (status != 0 && status != -EEXIST) {
		goto out;
	}

@@ -3740,6 +3740,11 @@ raid_bdev_examine_sb(const struct raid_bdev_superblock *sb, struct spdk_bdev *bd
		goto out;
	}

	if (base_info->is_configured) {
		rc = -EEXIST;
		goto out;
	}

	rc = raid_bdev_configure_base_bdev(base_info, true, cb_fn, cb_ctx);
	if (rc != 0) {
		SPDK_ERRLOG("Failed to configure bdev %s as base bdev of raid %s: %s\n",