Commit 214b0826 authored by Konrad Sztyber's avatar Konrad Sztyber
Browse files

nvmf: clear visible_ns flag when no_auto_visible is unset



This ensures that these flags are always set correctly and aren't
affected by prior calls to spdk_nvmf_subsystem_add_ns_ext().

Fixes: #3544

Signed-off-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I3d4f8bc822841ac788eceb1e271b474c59dc2045
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25244


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Reviewed-by: default avatarChangpeng Liu <changpeliu@tencent.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
parent bfd014b5
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -2142,10 +2142,8 @@ spdk_nvmf_subsystem_add_ns_ext(struct spdk_nvmf_subsystem *subsystem, const char

	TAILQ_INIT(&ns->hosts);
	ns->always_visible = !opts.no_auto_visible;
	if (ns->always_visible) {
	TAILQ_FOREACH(ctrlr, &subsystem->ctrlrs, link) {
			nvmf_ctrlr_ns_set_visible(ctrlr, opts.nsid, true);
		}
		nvmf_ctrlr_ns_set_visible(ctrlr, opts.nsid, ns->always_visible);
	}

	rc = spdk_bdev_open_ext(bdev_name, true, nvmf_ns_event, ns, &ns->desc);
+8 −0
Original line number Diff line number Diff line
@@ -134,6 +134,14 @@ hostrpc bdev_nvme_attach_controller -t "$TEST_TRANSPORT" -a "$NVMF_FIRST_TARGET_
[[ $(hostrpc bdev_get_bdevs | jq -r '.[].name' | sort | xargs) == "nvme0n1 nvme1n2" ]]
[[ $(hostrpc bdev_get_bdevs -b nvme0n1 | jq -r '.[].uuid') == "$ns1uuid" ]]
[[ $(hostrpc bdev_get_bdevs -b nvme1n2 | jq -r '.[].uuid') == "$ns2uuid" ]]
"$rpc_py" nvmf_subsystem_remove_ns "$SUBSYSNQN" 1
"$rpc_py" nvmf_subsystem_remove_ns "$SUBSYSNQN" 2

# Check that a failed add_ns doesn't leave the ns visible flag set, see issue #3544
NOT "$rpc_py" nvmf_subsystem_add_ns "$SUBSYSNQN" invalid -n 1 -g $(uuid2nguid "$ns1uuid")
"$rpc_py" nvmf_subsystem_add_ns "$SUBSYSNQN" Malloc1 -n 1 -g $(uuid2nguid "$ns1uuid") -i
sleep 2s
(($(hostrpc bdev_get_bdevs | jq 'length') == 0))

killprocess $hostpid
$rpc_py nvmf_delete_subsystem $SUBSYSNQN