[PATCH] xfstests: use xfs_io fiemap instead of filefrag
Eric Sandeen
sandeen at sandeen.net
Fri Jun 21 13:22:54 CDT 2013
On 6/20/13 1:09 PM, Josef Bacik wrote:
> 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.
I'd call that a filefrag bug but TBH filefrag has been so fragile, I don't
mind just switching to xfs_io.
> 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,
Seems fine other than I think we need a:
_require_xfs_io_fiemap
somewhere; either in the tests that call _extent_count, or maybe just at the
top of common/defrag, although that's a little bigger hammer.
-Eric
> Signed-off-by: Josef Bacik <jbacik at fusionio.com>
> ---
> common/defrag | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/common/defrag b/common/defrag
> index f04fd42..a7e5488 100644
> --- a/common/defrag
> +++ b/common/defrag
> @@ -43,8 +43,8 @@ _require_defrag()
>
> _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.
>
More information about the xfs
mailing list