On 7/13/21 3:12 AM, Shin'ichiro Kawasaki wrote: > - # 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 To 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 Thanks, Bart.