From: Josef Bacik Date: Mon, 24 Jun 2013 14:21:36 +0000 (-0400) Subject: xfstests: use xfs_io fiemap instead of filefrag V2 X-Git-Tag: v2022.05.01~3408 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=99c495a3087630d80b3f6f0ecef1fe0e79593c92;p=xfstests-dev.git xfstests: use xfs_io fiemap instead of filefrag V2 Btrfs has always failed shared/218 because of the way we allocate extents on disk. The last part of 218 writes contiguously holey from the start of the file forward, which for btrfs means we get 16 extents but they are physically contigous. filefrag -v shows all 16 extents, but prints out that there is 1 extent, because they are physically contiguous. This isn't quite right and makes the test fail. So instead of using filefrag use xfs_io -c fiemap which will print the whole map and then get the count from there. With this patch btrfs now passes the test, I also verified that ext4 and xfs still pass this test. Thanks, Signed-off-by: Josef Bacik Reviewed-by: Dave Chinner Signed-off-by: Ben Myers --- diff --git a/common/defrag b/common/defrag index f04fd42d..a4bc976e 100644 --- a/common/defrag +++ b/common/defrag @@ -38,13 +38,13 @@ _require_defrag() esac _require_command $DEFRAG_PROG - _require_command $FILEFRAG_PROG + _require_xfs_io_fiemap } _extent_count() { - $FILEFRAG_PROG $1 | awk '{print $2}' - $FILEFRAG_PROG -v $1 >> $seqres.full 2>&1 + $XFS_IO_PROG -c "fiemap" $1 | tail -n +2 | grep -v hole | wc -l + $XFS_IO_PROG -c "fiemap" $1 >> $seqres.full 2>&1 } # Defrag file, check it, and remove it.