common: use fiemap to count extents and holes

For the follwoing tests, this patch adds general script to get extent and
hole counts.

 xfs/137         (data vs filesize)
 xfs/138         (data vs filesize vs truncate)
 xfs/139         (data vs filesize vs partial truncate)
 xfs/140         (data vs filesize vs extending truncate)
 xfs/179         (data vs filesize w/ fsync)
 xfs/180         (data vs filesize w/ sync)
 xfs/182         (data vs filesize w/ recovery)

It also requires these tests to check for fiemap support.

[dchinner: use _require_xfs_io_command "fiemap" for consistency]

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
Jaegeuk Kim
2015-02-12 14:18:23 +11:00
committed by Dave Chinner
parent e2b7ec91cc
commit f71327511d
8 changed files with 45 additions and 20 deletions
+18
View File
@@ -2332,6 +2332,24 @@ _require_scratch_shutdown()
_scratch_unmount
}
# Does fiemap support?
_require_fiemap()
{
_require_xfs_io_command "fiemap"
}
_count_extents()
{
res=`$XFS_IO_PROG -c "fiemap" $1 | tail -n +2`
echo $res | grep -v hole | wc -l | $AWK_PROG '{print $1}'
}
_count_holes()
{
res=`$XFS_IO_PROG -c "fiemap" $1 | tail -n +2`
echo $res | grep hole | wc -l | $AWK_PROG '{print $1}'
}
# arg 1 is dev to remove and is output of the below eg.
# ls -l /sys/class/block/sdd | rev | cut -d "/" -f 3 | rev
_devmgt_remove()