On 1/26/19 6:17 AM, Omar Sandoval wrote: > On Fri, Jan 18, 2019 at 06:44:46PM +0900, Shin'ichiro Kawasaki wrote: >> To analyze dd command failures found by blktests, need to confirm dd >> command options. Introduce the helper function which executes dd and >> records dd command options in FULL file for quick analysis. >> >> Reviewed-by: Chaitanya Kulkarni <Chaitanya.Kulkarni@xxxxxxx> >> Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx> >> --- >> common/rc | 31 +++++++++++++++++++++++++++++++ >> 1 file changed, 31 insertions(+) >> >> diff --git a/common/rc b/common/rc >> index 153a323..fe0e5d8 100644 >> --- a/common/rc >> +++ b/common/rc >> @@ -214,3 +214,34 @@ _test_dev_in_hotplug_slot() { >> _filter_xfs_io_error() { >> sed -e 's/^\(.*\)64\(: .*$\)/\1\2/' >> } >> + >> +# Issue dd command with five arguments and record command line in FULL file. >> +# args: target device, r/w, start sector, sector len, block size in bytes >> +_dd() { >> + local target_dev=${1} >> + local rw=${2} >> + local -i start_sector=${3} >> + local -i start_byte=$(( start_sector * 512 )) >> + local -i sector_count=${4} >> + local -i bs=${5} >> + local -i block_count=$(( sector_count * 512 / bs )) >> + >> + local _cmd="dd bs=${bs} count=${block_count}" >> + >> + if [[ ${rw} = "read" ]]; then >> + _cmd="${_cmd} if=${target_dev} of=/dev/null" >> + _cmd="${_cmd} iflag=skip_bytes skip=${start_byte}" >> + elif [[ ${rw} = "write" ]]; then >> + _cmd="${_cmd} if=/dev/zero of=${target_dev}" >> + _cmd="${_cmd} oflag=seek_bytes,direct seek=${start_byte}" >> + fi > > This doesn't seem to be abstracting away anything too complicated. I'd > rather you remove the layer of indirection and open-code calls to dd. OK. Will replace _dd function call with dd command call. -- Best Regards, Shin'ichiro Kawasaki