]> www.infradead.org Git - users/hch/blktests.git/commitdiff
zbd/rc: Support dm-crypt
authorShin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Tue, 13 Jul 2021 10:12:38 +0000 (19:12 +0900)
committerOmar Sandoval <osandov@fb.com>
Wed, 25 Aug 2021 00:45:32 +0000 (17:45 -0700)
Linux kernel 5.9 added zoned block device support to dm-crypt. To test
dm-crypt devices, modify the function _get_dev_container_and_sector().
To handle device-mapper table format difference between dm-crypt and
dm-linear/flakey, add dev_idx and off_idx local variables.

Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
tests/zbd/rc

index 12373632ee129ffea6e753d5a3299e87a1ba2c78..9deadc1d515b8fdbb4513d9fa15d6791b115dee6 100644 (file)
@@ -327,6 +327,7 @@ _get_dev_container_and_sector() {
        local cont_dev
        local -i offset
        local -a tbl_line
+       local -i dev_idx=3 off_idx=4
 
        if _test_dev_is_partition; then
                offset=$(<"${TEST_DEV_PART_SYSFS}/start")
@@ -340,13 +341,19 @@ _get_dev_container_and_sector() {
                return 1
        fi
        if ! _test_dev_has_dm_map linear &&
-                       ! _test_dev_has_dm_map flakey; then
-               echo -n "dm mapping test other than linear/flakey is"
+                       ! _test_dev_has_dm_map flakey &&
+                       ! _test_dev_has_dm_map crypt; then
+               echo -n "dm mapping test other than linear/flakey/crypt is"
                echo "not implemented"
                return 1
        fi
 
-       # Parse dm table lines for dm-linear or dm-flakey target
+       if _test_dev_has_dm_map crypt; then
+               dev_idx=6
+               off_idx=7
+       fi
+
+       # Parse dm table lines for dm-linear, dm-flakey or dm-crypt target
        while read -r -a tbl_line; do
                local -i map_start=${tbl_line[0]}
                local -i map_end=$((tbl_line[0] + tbl_line[1]))
@@ -355,10 +362,11 @@ _get_dev_container_and_sector() {
                        continue
                fi
 
-               offset=${tbl_line[4]}
-               if ! cont_dev=$(_get_dev_path_by_id "${tbl_line[3]}"); then
+               offset=${tbl_line[off_idx]}
+               if ! cont_dev=$(_get_dev_path_by_id \
+                                       "${tbl_line[dev_idx]}"); then
                        echo -n "Cannot access to container device: "
-                       echo "${tbl_line[3]}"
+                       echo "${tbl_line[dev_idx]}"
                        return 1
                fi