esac
 
     _require_command $DEFRAG_PROG
-    _require_xfs_io_fiemap
+    _require_xfs_io_command "fiemap"
 }
 
 _extent_count()
 
                _notrun "xfs_io $command failed (old kernel/wrong fs?)"
 }
 
-# check that xfs_io, kernel, and filesystem all support zero
-_require_xfs_io_zero()
-{
-       _require_xfs_io_command "zero"
-}
-
-# check that xfs_io, glibc, kernel, and filesystem all (!) support
-# fallocate
-#
-_require_xfs_io_falloc()
-{
-       _require_xfs_io_command "falloc"
-}
-
-# check that xfs_io, kernel and filesystem all support fallocate with hole
-# punching
-_require_xfs_io_falloc_punch()
-{
-       _require_xfs_io_command "fpunch"
-}
-
-# check that xfs_io, kernel and filesystem all support fallocate with collapse
-# range
-_require_xfs_io_falloc_collapse()
-{
-       _require_xfs_io_command "fcollapse"
-}
-
-# check that xfs_io, kernel, and filesystem all support fallocate with zero
-# range
-_require_xfs_io_falloc_zero()
-{
-       _require_xfs_io_command "fzero"
-}
-
-# check that xfs_io, kernel and filesystem support fiemap
-_require_xfs_io_fiemap()
-{
-       _require_xfs_io_command "fiemap"
-}
-
 # Check that a fs has enough free space (in 1024b blocks)
 #
 _require_fs_space()
 
 _supported_fs btrfs
 _supported_os Linux
 
-_require_xfs_io_fiemap
+_require_xfs_io_command "fiemap"
 _require_cp_reflink
 
 TESTDIR1=$TEST_DIR/test-$seq
 
 _supported_fs btrfs
 _supported_os Linux
 
-_require_xfs_io_fiemap
+_require_xfs_io_command "fiemap"
 _require_cp_reflink
 
 TESTDIR1=$TEST_DIR/test-$seq
 
 _supported_fs btrfs
 _supported_os Linux
 
-_require_xfs_io_fiemap
+_require_xfs_io_command "fiemap"
 _require_cp_reflink
 
 rm -f $seqres.full
 
 _supported_os Linux
 _require_scratch
 _require_fssum
-_require_xfs_io_fiemap
+_require_xfs_io_command "fiemap"
 _require_btrfs_send_stream_version
 _need_to_be_root
 
 
 # real QA test starts here
 _supported_fs ext4
 _supported_os Linux
-_require_xfs_io_falloc_zero
+_require_xfs_io_command "fzero"
 
 testfile=$TEST_DIR/001.$$
 
 
 # Prerequisites for the test run.
 _supported_fs ext4
 _supported_os Linux
-_require_xfs_io_falloc
+_require_xfs_io_command "falloc"
 
 # Real QA test starts here.
 rm -f $seqres.full
 
 
 # real QA test starts here
 _supported_os Linux
-_require_xfs_io_falloc_zero
+_require_xfs_io_command "fzero"
 
 testfile=$TEST_DIR/009.$$
 
 
 _supported_fs generic
 _supported_os Linux
 
-_require_xfs_io_falloc_punch
-_require_xfs_io_falloc
-_require_xfs_io_fiemap
-_require_xfs_io_falloc_collapse
+_require_xfs_io_command "fpunch"
+_require_xfs_io_command "falloc"
+_require_xfs_io_command "fiemap"
+_require_xfs_io_command "fcollapse"
 
 testfile=$TEST_DIR/$seq.$$
 
 
 _supported_fs generic
 _supported_os Linux
 
-_require_xfs_io_falloc_punch
-_require_xfs_io_falloc
-_require_xfs_io_fiemap
-_require_xfs_io_falloc_collapse
+_require_xfs_io_command "fpunch"
+_require_xfs_io_command "falloc"
+_require_xfs_io_command "fiemap"
+_require_xfs_io_command "fcollapse"
 
 testfile=$TEST_DIR/$seq.$$
 
 
 _supported_os Linux
 
 _require_scratch
-_require_xfs_io_fiemap
-_require_xfs_io_falloc_collapse
+_require_xfs_io_command "fiemap"
+_require_xfs_io_command "fcollapse"
 _do_die_on_error=y
 testfile=$SCRATCH_MNT/$seq.$$
 BLOCKS=10240
 
 _supported_fs generic
 _supported_os Linux
 
-_require_xfs_io_falloc_punch
-_require_xfs_io_falloc
-_require_xfs_io_fiemap
-_require_xfs_io_falloc_collapse
+_require_xfs_io_command "fpunch"
+_require_xfs_io_command "falloc"
+_require_xfs_io_command "fiemap"
+_require_xfs_io_command "fcollapse"
 
 testfile=$TEST_DIR/$seq.$$
 
 
 _supported_fs generic
 _supported_os Linux
 
-_require_xfs_io_falloc_punch
-_require_xfs_io_falloc
-_require_xfs_io_fiemap
-_require_xfs_io_falloc_collapse
+_require_xfs_io_command "fpunch"
+_require_xfs_io_command "falloc"
+_require_xfs_io_command "fiemap"
+_require_xfs_io_command "fcollapse"
 
 testfile=$TEST_DIR/$seq.$$
 
 
 
 rm -f $seqres.full
 
-_require_xfs_io_falloc
+_require_xfs_io_command "falloc"
 
 # check there's enough freespace on $TEST_DIR ... (1GiB + 1MiB)
 avail=`df -P $TEST_DIR | awk 'END {print $4}'`
 
 rm -f $seqres.full
 rm -f $TEST_DIR/ouch*
 
-_require_xfs_io_falloc
+_require_xfs_io_command "falloc"
 
 # Ok, off we go.
 
 
 _supported_os Linux
 
 _require_scratch
-_require_xfs_io_falloc
+_require_xfs_io_command "falloc"
 
 rm -f $seqres.full
 
 
 rm -f $seqres.full
 
 # Sanity check to see if fallocate works
-_require_xfs_io_falloc
+_require_xfs_io_command "falloc"
 
 # Check if we have good enough space available
 avail=`df -P $TEST_DIR | awk 'END {print $4}'`
 
 _supported_fs generic 
 _supported_os Linux
 
-_require_xfs_io_falloc_punch
-_require_xfs_io_falloc
-_require_xfs_io_fiemap
+_require_xfs_io_command "fpunch"
+_require_xfs_io_command "falloc"
+_require_xfs_io_command "fiemap"
 
 testfile=$TEST_DIR/255.$$
 
 
 _supported_fs generic
 _supported_os Linux
 
-_require_xfs_io_falloc_punch
+_require_xfs_io_command "fpunch"
 _require_scratch
 _require_user
 
 
 _supported_fs generic
 _supported_os IRIX Linux
 _require_scratch
-_require_xfs_io_falloc
+_require_xfs_io_command "falloc"
 
 echo "------------------------------"
 echo "preallocation test"
 
 
 # xfs_io is not required for this test, but it's the best way to verify
 # the test system supports fallocate() for allocation and hole punching
-_require_xfs_io_falloc
-_require_xfs_io_falloc_punch
+_require_xfs_io_command "falloc"
+_require_xfs_io_command "fpunch"
 
 rm -f $seqres.full
 
 
 
 # xfs_io is not required for this test, but it's the best way to verify
 # the test system supports fallocate() for allocation
-_require_xfs_io_falloc
+_require_xfs_io_command "falloc"
 
 [ -x $here/src/fsync-tester ] || _notrun "fsync-tester not built"
 
 
 # real QA test starts here
 _supported_fs generic
 _supported_os Linux
-_require_xfs_io_falloc
+_require_xfs_io_command "falloc"
 _require_scratch
 
 # 5G in byte
 
 _supported_fs generic
 _supported_os Linux
 
-_require_xfs_io_falloc_punch
-_require_xfs_io_fiemap
+_require_xfs_io_command "fpunch"
+_require_xfs_io_command "fiemap"
 
 testfile=$TEST_DIR/$seq.$$
 
 
 _supported_fs ext4 xfs
 _supported_os Linux
 _require_fstrim
-_require_xfs_io_fiemap
+_require_xfs_io_command "fiemap"
 _require_fs_space $TEST_DIR 307200
 [ "$FSTYP" = "ext4" ] && _require_dumpe2fs
 
 
 _supported_fs xfs 
 _supported_os Linux
 
-_require_xfs_io_falloc_punch
-_require_xfs_io_fiemap
+_require_xfs_io_command "fpunch"
+_require_xfs_io_command "fiemap"
 
 testfile=$TEST_DIR/252.$$
 
 
 _supported_fs xfs
 _supported_os Linux
 
-_require_xfs_io_zero
+_require_xfs_io_command "zero"
 
 testfile=$TEST_DIR/290.$$