Re: [PATCH blktests 1/2] zbd/rc: Support dm-crypt
flat view
From: Shinichiro Kawasaki <hidden>
Date: 2021-07-14 11:13:12
On Jul 13, 2021 / 06:59, Bart Van Assche wrote:
On 7/13/21 3:12 AM, Shin'ichiro Kawasaki wrote:quoted
- # 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 fiTo me the above code looks like code that is hard to maintain. Can the above parser be replaced by reading /sys/block/*/slaves? An example from my workstation for dm-crypt: $ ls /sys/block/dm-0/slaves nvme0n1p2
Hi, Bart. Thanks for the suggestion, but I don't think sysfs slaves attribute will simplify the code. The helper function _get_dev_container_and_sector() requires pairs of 'map starting sector offset' and 'map target device'. Dm table provides both of them, but the sysfs slaves attribute provides only the map target device. As far as I understand, the helper function must parse the dm table anyway to get the map starting sector offsets, and paired devices. -- Best Regards, Shin'ichiro Kawasaki