Skip to content

Commit 76a03c7

Browse files
dwsusekawasaki
authored andcommitted
nvme/{033,034,035,036,37}: drop port handle between passthru target setup and cleanup
The passthru nvmet setup and cleanup helpers are using the port as handle to track resources. Instead returning the port from the setup call, we figure out in the cleanup code which resources have been allocated. This avoids passing around awkward handles. Reviewed-by: Chaitanya Kulkarni <[email protected]> Signed-off-by: Daniel Wagner <[email protected]> Signed-off-by: Shin'ichiro Kawasaki <[email protected]>
1 parent d16a508 commit 76a03c7

6 files changed

Lines changed: 34 additions & 21 deletions

File tree

tests/nvme/033

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,15 @@ test_device() {
5050
_setup_nvmet
5151

5252
local nsdev
53-
local port
5453

55-
port=$(_nvmet_passthru_target_setup "${def_subsysnqn}")
54+
_nvmet_passthru_target_setup "${def_subsysnqn}"
5655

5756
nsdev=$(_nvmet_passthru_target_connect "${nvme_trtype}" "${def_subsysnqn}")
5857

5958
compare_dev_info "${nsdev}"
6059

6160
_nvme_disconnect_subsys "${def_subsysnqn}"
62-
_nvmet_passthru_target_cleanup "${port}" "${def_subsysnqn}"
61+
_nvmet_passthru_target_cleanup "${def_subsysnqn}"
6362

6463
echo "Test complete"
6564
}

tests/nvme/034

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,14 @@ test_device() {
2121

2222
local ctrldev
2323
local nsdev
24-
local port
2524

26-
port=$(_nvmet_passthru_target_setup "${def_subsysnqn}")
25+
_nvmet_passthru_target_setup "${def_subsysnqn}"
2726
nsdev=$(_nvmet_passthru_target_connect "${nvme_trtype}" "${def_subsysnqn}")
2827

2928
_run_fio_verify_io --size="${nvme_img_size}" --filename="${nsdev}"
3029

3130
_nvme_disconnect_subsys "${def_subsysnqn}"
32-
_nvmet_passthru_target_cleanup "${port}" "${def_subsysnqn}"
31+
_nvmet_passthru_target_cleanup "${def_subsysnqn}"
3332

3433
echo "Test complete"
3534
}

tests/nvme/035

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,14 @@ test_device() {
2727

2828
local ctrldev
2929
local nsdev
30-
local port
3130

32-
port=$(_nvmet_passthru_target_setup "${def_subsysnqn}")
31+
_nvmet_passthru_target_setup "${def_subsysnqn}"
3332
nsdev=$(_nvmet_passthru_target_connect "${nvme_trtype}" "${def_subsysnqn}")
3433

3534
_xfs_run_fio_verify_io "${nsdev}" "${nvme_img_size}"
3635

3736
_nvme_disconnect_subsys "${def_subsysnqn}"
38-
_nvmet_passthru_target_cleanup "${port}" "${def_subsysnqn}"
37+
_nvmet_passthru_target_cleanup "${def_subsysnqn}"
3938

4039
echo "Test complete"
4140
}

tests/nvme/036

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,8 @@ test_device() {
1919
_setup_nvmet
2020

2121
local ctrldev
22-
local port
2322

24-
port=$(_nvmet_passthru_target_setup "${def_subsysnqn}")
23+
_nvmet_passthru_target_setup "${def_subsysnqn}"
2524
nsdev=$(_nvmet_passthru_target_connect "${nvme_trtype}" "${def_subsysnqn}")
2625

2726
ctrldev=$(_find_nvme_dev "${def_subsysnqn}")
@@ -31,7 +30,7 @@ test_device() {
3130
fi
3231

3332
_nvme_disconnect_subsys "${def_subsysnqn}"
34-
_nvmet_passthru_target_cleanup "${port}" "${def_subsysnqn}"
33+
_nvmet_passthru_target_cleanup "${def_subsysnqn}"
3534

3635
echo "Test complete"
3736
}

tests/nvme/037

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,14 @@ test_device() {
2020
local subsys="blktests-subsystem-"
2121
local iterations=10
2222
local ctrldev
23-
local port
2423

2524
for ((i = 0; i < iterations; i++)); do
26-
port=$(_nvmet_passthru_target_setup "${subsys}${i}")
25+
_nvmet_passthru_target_setup "${subsys}${i}"
2726
nsdev=$(_nvmet_passthru_target_connect "${nvme_trtype}" \
2827
"${subsys}${i}")
2928

3029
_nvme_disconnect_subsys "${subsys}${i}" >>"${FULL}" 2>&1
31-
_nvmet_passthru_target_cleanup "${port}" "${subsys}${i}"
30+
_nvmet_passthru_target_cleanup "${subsys}${i}"
3231
done
3332

3433
echo "Test complete"

tests/nvme/rc

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -745,6 +745,19 @@ _remove_nvmet_subsystem_from_port() {
745745
rm "${NVMET_CFS}/ports/${port}/subsystems/${nvmet_subsystem}"
746746
}
747747

748+
_get_nvmet_ports() {
749+
local nvmet_subsystem="$1"
750+
local -n nvmet_ports="$2"
751+
local cfs_path="${NVMET_CFS}/ports"
752+
local sarg
753+
754+
sarg="s;^${cfs_path}/\([0-9]\+\)/subsystems/${nvmet_subsystem}$;\1;p"
755+
756+
for path in "${cfs_path}/"*"/subsystems/${nvmet_subsystem}"; do
757+
nvmet_ports+=("$(echo "${path}" | sed -n -s "${sarg}")")
758+
done
759+
}
760+
748761
_set_nvmet_hostkey() {
749762
local nvmet_hostnqn="$1"
750763
local nvmet_hostkey="$2"
@@ -807,13 +820,12 @@ _find_nvme_passthru_loop_dev() {
807820

808821
_nvmet_passthru_target_setup() {
809822
local subsys_name=$1
823+
local port
810824

811825
_create_nvmet_passthru "${subsys_name}"
812826
port="$(_create_nvmet_port "${nvme_trtype}")"
813827
_add_nvmet_subsys_to_port "${port}" "${subsys_name}"
814828
_create_nvmet_host "${subsys_name}" "${def_hostnqn}"
815-
816-
echo "$port"
817829
}
818830

819831
_nvmet_passthru_target_connect() {
@@ -832,11 +844,17 @@ _nvmet_passthru_target_connect() {
832844
}
833845

834846
_nvmet_passthru_target_cleanup() {
835-
local port=$1
836-
local subsys_name=$2
847+
local subsys_name=$1
848+
local ports
849+
local port
850+
851+
_get_nvmet_ports "${subsys_name}" ports
852+
853+
for port in "${ports[@]}"; do
854+
_remove_nvmet_subsystem_from_port "${port}" "${subsys_name}"
855+
_remove_nvmet_port "${port}"
856+
done
837857

838-
_remove_nvmet_subsystem_from_port "${port}" "${subsys_name}"
839-
_remove_nvmet_port "${port}"
840858
_remove_nvmet_passhtru "${subsys_name}"
841859
_remove_nvmet_host "${def_hostnqn}"
842860
}

0 commit comments

Comments
 (0)