Use the common helpers to find the btrfs logical address and to read from a specific mirror. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Reviewed-by: Qu Wenruo <wqu@xxxxxxxx> --- tests/btrfs/142 | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/tests/btrfs/142 b/tests/btrfs/142 index 58d01add..7a63fb83 100755 --- a/tests/btrfs/142 +++ b/tests/btrfs/142 @@ -27,7 +27,6 @@ _require_scratch_dev_pool 2 _require_dm_target dust _require_btrfs_command inspect-internal dump-tree -_require_command "$FILEFRAG_PROG" filefrag _scratch_dev_pool_get 2 # step 1, create a raid1 btrfs which contains one 128k file. @@ -46,8 +45,7 @@ $XFS_IO_PROG -f -d -c "pwrite -S 0xaa -b 128K 0 128K" "$SCRATCH_MNT/foobar" |\ # step 2, corrupt the first 64k of stripe #1 echo "step 2......corrupt file extent" >>$seqres.full -${FILEFRAG_PROG} -v $SCRATCH_MNT/foobar >> $seqres.full -logical_in_btrfs=`${FILEFRAG_PROG} -v $SCRATCH_MNT/foobar | _filter_filefrag | cut -d '#' -f 1` +logical_in_btrfs=$(_btrfs_get_first_logical $SCRATCH_MNT/foobar) echo "Logical offset is $logical_in_btrfs" >>$seqres.full _scratch_unmount @@ -67,10 +65,8 @@ echo "step 3......repair the bad copy" >>$seqres.full $DMSETUP_PROG message dust-test 0 addbadblock $((physical / 512)) $DMSETUP_PROG message dust-test 0 enable -while [[ -z $( (( BASHPID % 2 == stripe )) && - exec $XFS_IO_PROG -d -c "pread -b 128K 0 128K" "$SCRATCH_MNT/foobar") ]]; do - : -done + +_btrfs_direct_read_on_mirror $stripe 2 "$SCRATCH_MNT/foobar" 0 128K _cleanup_dust -- 2.30.2